文本阅读编辑(保存文本)

在4-3中,我们动态的添加了文本框,修改了文本框的内容,在刷新页面时,文本框没有消失,内容也没有被更改;

readAllLine时,每次载入页面都需要LoadFile,在 LoadFile的过程当中,其实就是动态创建文本框的过程(要注意,动态文本框的创建要放在PageLoad事件中,否则点击其他控件刷新页面后,动态文本框会消失),其他操作就是保存;



进入readAllLine文件中:


因为要动态地创建文本框,所以首先定义个容器:

注意在readAllLine的子页中定义的


容器和按钮的位置:


进入readAllLine.aspx.cs中进行后台代码的定义,不要忘记添加名称空间:


在PageLoad事件中载入指定文件的内容:

自定义一个getPath()函数,来获取有效路径:


如果,getPath()函数返回了一个地址,说明,页面跳转时有参数,并且文件存在,否则被踢回default;

在PageLoad中构建动态文本框组:


将创建的动态文本框添加到txts_holder当中,修改一下代码:



运行效果:


接下来实现文本框换行:

使用Css来控制;

readAllLine.aspx的Css代码可以写在readAllLine子页的Content中,也可以写在母版页head中:

我们现在写在Content中:

我们要控制的是txts_holder层下的input元素:

注意:以盒模型的方式控制文本框,可以实现文本框的换行;


预览效果:


发现控制不到;


原因:

要学会通过查看源文件来检错

我们来查看源文件:


我们是想修改holder_main层下的文本框,但是我们发现现在的div的id被改成了holder_main_txts_holder,发生这种改变的原因是我们套用了母版页,在Asp.net当中为了避免在母版页下面的元素的id跟母版页中元素的id发生冲突,在使用占位符的过程中,会改变元素的id,将占位符的id前置到元素的id中,从而无法保证Css当中元素id的正确性,该问题无法解决,因此Css代码通常使用class来控制这些元素,因为class是不会被改变的;

在asp.net4.0之后,该问题有了解决方案:


在将要通过Css进行控制的元素中,添加clientidmode属性,并且设置为Static,并且确保这个id与别的id不能发生冲突;


刷新页面:


此时,点击保存修改按钮,文本框不会消失,修改的内容也被保留在文本框当中,这与4-3中动态添加文本框的效果是一样的;


接下来编辑保存文本按钮:

将文本框中的内容保存到文件中;

首先,遍历层下的所有控件,如果是文本框,则把文本框中的内容添加:

因为,会存在一些看不见的控件,而且会被遍历出来,因此要对控件进行检测:

如何做到保存后不改变文本换行的格式:

首先,将每行内容拼接起来,在通过split拆开,并分配到数组之中,在使用writeAllLine方法,将数组内容写入文件中;


长度减一是为了将最后一个字符串后的"\u0081"去掉,否则,在文本文件中,最后一行会多出一个空字符串;




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值