Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从gridview中嵌套在repeater中的文本框中获取数据?_C#_Gridview_.net 2.0_Repeater - Fatal编程技术网

C# 如何从gridview中嵌套在repeater中的文本框中获取数据?

C# 如何从gridview中嵌套在repeater中的文本框中获取数据?,c#,gridview,.net-2.0,repeater,C#,Gridview,.net 2.0,Repeater,我以前试着只用文本发布这篇文章…只有一个响应建议我更新onblur…这似乎不是最好的途径,因为可能会有大量记录:我在repeater ItemDataBound事件期间构建了以下Gridview: '> <asp:GridView ID="gvBeneficiary" DataKeyNames="BeneficiaryKey" OnRowCommand="gvBeneficiary_RowCommand" runat="server" AutoGenerateCol

我以前试着只用文本发布这篇文章…只有一个响应建议我更新onblur…这似乎不是最好的途径,因为可能会有大量记录:我在repeater ItemDataBound事件期间构建了以下Gridview: '>

            <asp:GridView ID="gvBeneficiary" DataKeyNames="BeneficiaryKey" OnRowCommand="gvBeneficiary_RowCommand" runat="server" AutoGenerateColumns="false">
            <Columns>


                 <asp:TemplateField HeaderText="Name">
                 <ItemTemplate>
                 <asp:HyperLink runat = "server" ID="hlEditBeneficiary" NavigateUrl='<%# "~/EditBeneficiary.aspx?bk=" + HttpUtility.UrlEncode(DataBinder.Eval(Container.DataItem, "BeneficiaryKey").ToString()) %>' Text='<%#Eval("FirstName") %>'></asp:HyperLink>  
                 </ItemTemplate>


                 </asp:TemplateField>  

                <asp:BoundField DataField="Relationship" HeaderText="Relationship" />
                <asp:TemplateField HeaderText="Shares %">

                    <ItemTemplate>
                        <asp:TextBox ID="txtEditShares" runat="server" Text='<%#Bind("Shares") %>'></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField HeaderText="Beneficiary Type">

                <ItemTemplate>
                    <asp:DropDownList ID="ddlBeneficiaryType" runat="server" SelectedIndex='<%# GetSelectedBeneficiaryType(Eval("BeneficiaryType")) %>' DataSource='<%# BeneficiaryTypes %>' ></asp:DropDownList>

                </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                <ItemTemplate>
                <asp:LinkButton  Text="Delete" CommandName='DoDelete'  CommandArgument='<%# string.Format("{0}|{1}", Eval("BeneficiaryKey"), Eval("PlanTypeKey")) %>' ID="lbDoDelete" runat="server"></asp:LinkButton>
                </ItemTemplate>

                </asp:TemplateField>          




            </Columns>

            </asp:GridView>
            <asp:HyperLink ID="hlAddBeneficiary" runat="server" Text="Add Beneficiary" NavigateUrl='<%# "~/AddEditBeneficiary.aspx?PT=" + HttpUtility.UrlEncode(DataBinder.Eval(Container.DataItem, "PlanTypeKey").ToString()) + "&CPT=" + HttpUtility.UrlEncode(DataBinder.Eval(Container.DataItem, "CorePlanType").ToString()) %>'></asp:HyperLink>
我有一个来自按钮的onclick事件,我想从该按钮执行所有更新。任何人都知道如何向下钻取行上的单个控件,以便一次或在循环中提取所有数据。 再次感谢你的建议。
Padawan

您需要迭代GridView的每一行,并从您感兴趣的每个控件收集数据。例如,下面的代码段将获取每行的每个txtEditShares值

foreach (GridViewRow row in gvBeneficiary.Rows)
{
    var txtEditShares = (TextBox)row.FindControl("txtEditShares");
    var shares = txtEditShares.Text;
    ///...
}
您需要将循环的核心放在一起,但这就是如何在GridView的每一行中移动并获取控件值的方法。我希望有帮助

foreach (GridViewRow row in gvBeneficiary.Rows)
{
    var txtEditShares = (TextBox)row.FindControl("txtEditShares");
    var shares = txtEditShares.Text;
    ///...
}