首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 关于gridview模板列中的多行textbox问题 [已结贴,结贴人:wsxcy66668888]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-29 17:10:16 楼主
    在gridview控件中加入了一个模块列,邦定表中一列数据在一个多行textbox控件上,数据内有空格和回车,我用两个函数r1strt和r2str进行空格与回车的转换,以便用户总是能看到不含有 <br> &nbsp;之类数据。

    现在的问题是,我在什么事件中对用户点击gridview的编辑按钮后使gridview中的textbox控件显示将空格与回车去掉的数据,我试了在GridView1_RowEditing事件中根本找不到控件,使用GridView1_RowUpdating事件还是能看到含有 <br> &nbsp;的数据。

    我要怎么做才行呢?求教
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-29 17:26:451楼 得分:5
    RowDataBound事件
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-29 17:31:522楼 得分:0
    那么在这个事件中如何找到那个textbox呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sp1234
    • 等级:
    发表于:2008-06-29 17:32:553楼 得分:5
    既然你只是要显示,就应该在你的模板的绑定表达式中调用函数对数据进行转换。不管发生了什么事件,只要显示,就应该正确显示。跟事件无关。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sp1234
    • 等级:
    发表于:2008-06-29 17:38:134楼 得分:0
    通常,既然使用TextBox编辑,你的数据源中的数据就应该是“包含空格与回车”的,即数据源中的值应该与Edit时的值保持一致。

    看你的设计,在数据源中的是html代码,却要使用TextBox来编辑,设计得很别扭。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-29 17:39:455楼 得分:0
    那么在这个事件中如何找到那个textbox,并给它加上r1str(textbox1.text)呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-29 18:07:216楼 得分:0
    因为数据量很小,只有不到百字,所以不想用富文本编辑器,且数据中只含有空格和回车
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-29 18:24:157楼 得分:0
      Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
            Dim TextBox1 As TextBox = CType(e.Row.Cells(1).FindControl("textbox1"), TextBox)
            TextBox1.Text = r2vb(TextBox1.Text)
        End Sub

    这个方法找不到控件(控件名是对的)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-29 19:02:308楼 得分:5
    VB.NET不够熟,这是C#的语法

    C# code
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { //判断是否是编辑行 if ((e.Row.RowState & DataControlRowState.Edit) != 0) { //在这里找你的文本框 } } }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-30 10:06:119楼 得分:5
    我想这和用什么事件写没多大关系,你只要在保存这个多行文本框数据的时候事先把它转换后存到数据库中去,读出来时自然就不会出现空格与 <br/>如下:
    string s = " ";
            s = Request.Form["tbtext"].Replace(" ", "&nbsp;");
    如果是label控件的话,还要加下面这句,
    s = Request.Form["tbtext"].Replace('\n'.ToString(), " <br>");
    去试下吧
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved