質問

asp.netに表示するためのアイテムのリストがあります。各アイテム(行)には3つのテキストボックスがあり、ユーザーはそのデータ(送料、取り扱いコスト、価格)。

どのようなものになるか" recommended"これを達成する方法は?リピーターでは、ポストバックでフォーム値をループする必要があり、gridviewコントロールでは、onrowdataboundおよびPostbackで他のメソッドをオーバーライドする必要があると思います。

両方が機能すると確信していますが、この状況で開発者としてあなたは何を選びますか?

役に立ちましたか?

解決

過去に行ったことは、データバインドされたGridView TemplateColumnsを使用することです。

<asp:GridView runat="server" ID="grdRoster" AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateField HeaderText="First Name">
            <ItemTemplate>
                <asp:TextBox runat="server" ID="txtFirstName" Columns="10" Text='<%# Eval("RosterFirstName") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Middle Name">
            <ItemTemplate>
                <asp:TextBox runat="server" ID="txtMiddleName" Columns="10" Text='<%# Eval("RosterMiddleName") %>' />
            </ItemTemplate>
        </asp:TemplateField>                       
        <asp:TemplateField HeaderText="Last Name">
            <ItemTemplate>
                <asp:TextBox runat="server" ID="txtLastName" Columns="10" Text='<%# Eval("RosterLastName") %>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

その後、ポストバック(「保存」ボタンのクリックなど)で、GridViewの行をループして、テキストボックスから値を取り出します:

foreach ( GridViewRow row in grdRoster.Rows )
{
    if ( row.RowType == DataControlRowType.DataRow )
    {
        string firstName = ( ( TextBox ) row.FindControl( "txtRosterFirstName" ) ).Text;
        string middleName = ( ( TextBox ) row.FindControl( "txtRosterMiddleName" ) ).Text;
        string lastName = ( ( TextBox ) row.FindControl( "txtRosterLastName" ) ).Text;
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top