【问题标题】:Getting value from textbox in gridview从gridview中的文本框获取价值
【发布时间】:2018-01-07 01:20:56
【问题描述】:

我有一个 GridView,我在其上绑定了 2 个文本框和一个更新按钮。网格视图是动态的,因此行数可以根据数据集的大小而变化。现在我想要的是当我更改此文本框中的值并单击更新时,数据库中该行的数据应该得到更新。数据库中的文本框值应该得到更新。

这是我的代码:

<asp:GridView ID="dgAbstractSummary" runat="server" AutoGenerateColumns="False"                                 OnRowDataBound="dgAbstractSummary_RowDataBound" OnRowCreated="dgAbstractSummary_RowCreated"
                                Visible="true">
                                <Columns>
                                    <asp:BoundField HeaderText="ID" DataField="id"  HtmlEncode="false"></asp:BoundField>
                                    <asp:BoundField HeaderText="Abstract Title" DataField="title" HtmlEncode="false"></asp:BoundField>
                                    <asp:TemplateField HeaderText="Significance Score">
                                        <ItemTemplate>
                                            <asp:TextBox ID="txtSignificanceScore" AutoPostBack="true" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"significanceScore")%>'></asp:TextBox>                                                
                                            <div class="voffset3"></div>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                     <asp:TemplateField HeaderText="Innovation Score">
                                        <ItemTemplate>
                                            <asp:TextBox ID="txtInnovationScore" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"innovationScore")%>'></asp:TextBox>                                                
                                            <div class="voffset3"></div>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                   <asp:TemplateField HeaderText="">
                                        <ItemTemplate>
                                           <asp:Button AutoPostBack="true" CssClass="btn btn-primary btn-embossed" ID="btnUpdate" runat="server"
                                                                   Text="Update"
                                                                   OnClick="btnUpdate_Click" CommandArgument='<%#Eval("Id") %>' />
                                                                <div class="voffset3"></div>
                                        </ItemTemplate>
                                        </asp:TemplateField>
                                </Columns>
                                <HeaderStyle CssClass="panel-default"></HeaderStyle>
                                <RowStyle CssClass=""></RowStyle>
  </asp:GridView>

C#

   dgAbstractSummary.DataSource = dsResult; // dataset contains values which I am binding to grid columns
   dgAbstractSummary.DataBind();

    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        Button myUpdateButton = (Button)sender;                       
    }

这里的Id(第一列)是每一行的唯一键。

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    使用查找控件功能,使用您的按钮发送事件来查找网格视图行上的两个文本框。

    类似的东西。

    Button btn = (Button)sender;   
    GridViewRow gvr = (GridViewRow)btn.NamingContainer;
    TextBox details = gvr.FindControl("detailsText") as TextBox;
    //do something with details 
    TextBox cusID = gvr.FindControl("TextBox2") as TextBox;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多