如何在c#中获取修改后的文本框值?

时间:2014-07-02 06:48:58

标签: c# asp.net

我在gridview中使用了一个文本框来在页面加载期间绑定db中的值。 问题是,当我更改文本框值时,我无法在c#中获得修改后的值,而是提供了我修改前的原始值。 我正在使用嵌套的GridViews ... 请帮助我..

<asp:TemplateField HeaderText="Singles" >
   <ItemTemplate>
   <asp:HiddenField ID="hidqua" runat="server" Value='<%#bind("QualityName") %>' />
   <asp:HiddenField ID="hidfau" runat="server" Value='<%#bind("FaultName") %>' />
   <asp:TextBox ID="asptxtsingleg" runat="server" Text='<%# bind("singles") %>'></asp:TextBox>
    </ItemTemplate> 
</asp:TemplateField>  

以下是我的c#编码

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "update")
        {
            foreach (GridViewRow row in grdInspection.Rows)
            {
                HiddenField hv = (HiddenField)row.FindControl("hidval");
                GridView txtsi = (GridView)row.FindControl("grdInsiewChid");
                foreach (GridViewRow row1 in txtsi.Rows)
                {
                    HiddenField htn = (HiddenField)row1.FindControl("hdnPLength");
                    GridView nesgrid = (GridView)row1.FindControl("GridView1");
                    foreach (GridViewRow row2 in nesgrid.Rows)
                    {
                        HiddenField qn = (HiddenField)row2.FindControl("hidqua");
                        TextBox t = (TextBox)row2.FindControl("asptxtsingleg");

                    }
                }
            }



        }
    }

2 个答案:

答案 0 :(得分:1)

假设您使用按钮来触发RowCommand事件。

<asp:TemplateField HeaderText="Singles">
     <ItemTemplate>
         <asp:TextBox ID="asptxtsingleg" runat="server" Text='<%# Eval("singles") %>' Width="120px"></asp:TextBox>
     </ItemTemplate>
</asp:TemplateField>
 <asp:TemplateField HeaderText="Edit">
     <ItemTemplate>
         <asp:Button ID="BtnEdit" runat="server" Text="Update" CommandName="updateData" CommandArgument='<%# Eval("Your_ID") %>' />
     </ItemTemplate>
</asp:TemplateField>

代码背后:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "updateData")
    {
        //int i = Convert.ToInt32(e.CommandArgument);
        GridViewRow row = (GridViewRow)(((Button)e.CommandSource).NamingContainer);

        TextBox tb = (TextBox)row.FindControl("asptxtsingleg");
    }
}

答案 1 :(得分:0)

您可以使用以下代码获取RowUpdating事件

中的文本框值
GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];
TextBox t= (TextBox)row.FindControl("asptxtsingleg");