ASP.NET高手来看看
string DepartName = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.ToString().Trim();
在自己写代码绑定的GridView中在编辑某列的情况下,我想用这句话取出编辑状态下TextBox中的值,但是这句话取出的只是编辑以前显示在GridView中的值,求救啊。弄了很久弄不出来。
asp的代码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
Height="180px" onrowcancelingedit="GridView1_RowCancelingEdit"
onrowdatabound="GridView1_RowDataBound" onrowdeleting="GridView1_RowDeleting"
onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating"
Width="502px">
<Columns>
<asp:BoundField DataField="DepartID" HeaderText="系部编号" ReadOnly="True" />
<asp:BoundField DataField="DepartName" HeaderText="系部名称" />
<asp:CommandField HeaderText="选择" ShowSelectButton="True" />
<asp:CommandField HeaderText="编辑" ShowEditButton="True" />
<asp:CommandField HeaderText="删除" ShowDeleteButton="True" />
</Columns>
</asp:GridView>
追问:还是不得行啊!朋友 能加QQ聊下吗? 我还是调不出来,用了你写的方法一样。帮下忙,等哈会给你加分的。我的QQ是303775491高手。还是不得行,从TextBox提取到的值还是从数据提取出来的值,没有变,是不是有什么地方要注意的哦!
答案:应该是这样:
string DepartName = ((TextBox)GridView1.Rows[GridView1.EditIndex].Cells[1].Controls[0]).Text.ToString().Trim();
主要是将代码 e.RowIndex 换成 GridView1.EditIndex
其他:先把列类型改了。
<Columns>
<asp:TemplateField>
<ItemTemplate>
<%# Eval("DepartName") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("DepartName") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
string DepartName = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.ToString().Trim();
改成这种方式 试下
string DepartName = (GridView1.Rows[e.RowIndex].FindControl("TextBox1") as TextBox).Text.ToString().Trim();
上一个:asp+access读数据很慢!
下一个:ASP.NET如何拆分字符串