当前位置:编程学习 > C#/ASP.NET >>

让textbox显示数据库里的内容,其他字段可以显示,就一个显示不出来,求救!!

我在gridview里,点击commandfield里的编辑,然后再textbox里显示当前选中行的内容,其它字段都可以显示出来,就一个字段显示不出来:
 protected void gvBtnEdit_Click(object sender, EventArgs e)
    {

        int i = ((GridViewRow)((LinkButton)sender).NamingContainer).RowIndex;

        LinkButton lBtn = (LinkButton)GridView1.Rows[i].FindControl("gvBtnEdit");
 // txtNotes.Text=GridView1.Rows[i].Cells[2].Text.ToString();
        txtClassName.Text = GridView1.Rows[i].Cells[1].Text.ToString();
        txtPersonNum.Text = GridView1.Rows[i].Cells[3].Text.ToString();
              
    }

请教啊~~~~~~~~~

--------------------编程问答-------------------- 你把它设为DataKeyFields了吧 --------------------编程问答-------------------- 我再补充一点,我打注释的那一行代码显示不出来

gridview我没有绑定这个字段作为DataKeyFields啊~~~ --------------------编程问答-------------------- gridview中的这一列我用了ItemTemplate了,难道这样就不能显示了,这个字段的前台绑定如下:
 <ItemTemplate>
                         <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Fromat(Eval("l_class_id")) %>' ToolTip='<%# Eval("vc_apply_content")%>'
Text='<%# Eval("vc_apply_content").ToString().Length>12?Eval("vc_apply_content").ToString().Substring(0,12)+"...":Eval("vc_apply_content") %>' Font-Bold="True"></asp:HyperLink>
                    </ItemTemplate>

不知道是不是这个原因,如果是这个原因的话,该如何解决 --------------------编程问答-------------------- 需要编辑直接使用gridview自带的编辑
设置EditTemplate
GridViewRow gvr = (sender as LinkButton).NamingContainer as GridViewRow;  
TextBox txt=gvr.FindControl("txtClassName")  as TextBox; --------------------编程问答--------------------
引用 4 楼 wuyq11 的回复:
需要编辑直接使用gridview自带的编辑
设置EditTemplate
GridViewRow gvr = (sender as LinkButton).NamingContainer as GridViewRow;  
TextBox txt=gvr.FindControl("txtClassName") as TextBox;

我是用自带的编辑的,但是我一楼说的这个显示不出来的字段内容太多了,在自带编辑状态下不好编辑,于是,我就点击这个自带的编辑的同时,在这个页面的一个text的MultiLine下全部显示出来的。 --------------------编程问答-------------------- 自己顶一下~~~~~~~~·· --------------------编程问答-------------------- 楼主打断点看看GridView1.Rows[i].Cells[2].Text.ToString()这里面有么有 --------------------编程问答-------------------- 没有,是空的 --------------------编程问答-------------------- 我可以通过解决CommandArgument来解决掉。
但是这个GridView1.Rows[i].Cells[2].Text.ToString();为什么不行呢?如果可以,应该怎么写呢?请教各位高人了~~~~~~~~~~~~~~~ --------------------编程问答-------------------- 你不使用的模板吗?自己都把按钮的引用写出来了,同样的方法引用HyperLink

HyperLink _lnk = (HyperLink)GridView1.Rows[i].FindControl("HyperLink1");
txtNotes.Text= _lnk.Text;


我没测试啊,自己试试,大概就是这个意思了。 --------------------编程问答--------------------
引用 8 楼 lgw222942 的回复:
没有,是空的

你是说txtNotes.Text=GridView1.Rows[i].Cells[2].Text.ToString();
这个是空,你要看看数据库里面是不是没东西 --------------------编程问答-------------------- 问题有点模糊,girdview里面有,绑到textbox里就没有了,是这样吗,girdview中i索引行的确全有数据吗 --------------------编程问答-------------------- 帮你顶一下。。。。 --------------------编程问答-------------------- 帮顶.... --------------------编程问答--------------------
引用 3 楼 lgw222942 的回复:
gridview中的这一列我用了ItemTemplate了,难道这样就不能显示了,这个字段的前台绑定如下:
 <ItemTemplate>
  <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Fromat(Eval("l_class_id")) %>' ToolTip='<%# Eval("vc_apply_cont……

应该是这个原因
// txtNotes.Text=GridView1.Rows[i].Cells[2].Text.ToString();
这一句,你改成
txtNotes.Text=(GridView1.Rows[i].Cells[2].Controls [0] as HyperLink).Text;
或者

txtNotes.Text=(GridView1.Rows[i].Cells[2].Controls [1] as HyperLink).Text;
两个都试下,应该有一个可以行

用ItemTemplate后,该列的值就不能直接Cells[i].Text,要先取得控件

--------------------编程问答--------------------
引用 15 楼 xxfxiazai 的回复:
引用 3 楼 lgw222942 的回复:
gridview中的这一列我用了ItemTemplate了,难道这样就不能显示了,这个字段的前台绑定如下:
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Fromat(Eval("l_class_id")) %>' ToolTip='<%#……


 这个方法确实可以让txtnotes显示,但是现实的和gridview的内容是一样的,这样不行,因为我在前台给gridview的这个模板列做了个设置,只显示前12个字符,其余的用省略号代替,所以text里显示的也是这个,这样肯定不行啊 --------------------编程问答--------------------
引用 16 楼 lgw222942 的回复:
引用 15 楼 xxfxiazai 的回复:
引用 3 楼 lgw222942 的回复:
gridview中的这一列我用了ItemTemplate了,难道这样就不能显示了,这个字段的前台绑定如下:
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Fromat(Eval("l_clas……

绑定回发后的取值,只能是显示什么取到什么,你要取到未处理的值,只能去数据库里去取。
建议你点击编辑后,只取到ID,通过ID去数据库里查询其他字段值
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,