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

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如何拆分字符串

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,