检索用户在asp.net gridview文本框模板列中输入的数据时出现问题

时间:2018-09-12 15:11:25

标签: c# asp.net gridview

我的页面上有一个asp:GridView定义如下:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" ViewStateMode="Enabled" >
    <Columns>
        <asp:BoundField DataField="ArtikelID" HeaderText="ID" ReadOnly="True" Visible="False"/>
        <asp:BoundField DataField="Kategorie" HeaderText="Kategorie" ReadOnly="True" />
        <asp:TemplateField HeaderText="Bezeichnung">
            <ItemTemplate>
                <asp:TextBox ID="txt_col_bezeichnung" runat="server" Text='<%# Bind("Bezeichnung") %>' ReadOnly="true"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Anzahl">
            <ItemTemplate>
                <asp:TextBox ID="txt_col_Anzahl" runat="server" Text='<%# Bind("Anzahl") %>'></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="E-Preis">
            <ItemTemplate>
                <asp:TextBox ID="txt_col_einzelpreis" runat="server" Text='<%# Bind("Einzelpreis", "C") %>'></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Kostenart">
            <ItemTemplate>
                <asp:TextBox ID="txt_col_kostenart" runat="server" Text='<%# Bind("Kostenart") %>' Enabled="false"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Kostenstelle">
            <ItemTemplate>
                <asp:TextBox ID="txt_col_kostenstelle" runat="server" Text='<%# Bind("Kostenstelle") %>'></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

在Page_Load事件期间(如果它不是回发),我将dataSource设置为对象列表,该对象列表是根据各种因素动态创建的。

数据显示良好,如下所示: displayed grid in browser

用户可以将数据输入到任何已启用/非只读的文本框中。然后,按下按钮以提交更改。回发后如何检索更改的数据?以下显然不起作用:

protected void Page_Load(object sender, EventArgs e)
{
    if(this.IsPostBack)
    {
        var items = this.GridView1.DataSource as List<Bestellartikel>;
    }
    else
    {
        this.GridView1.DataSource = GetListOfBestellartikel();
        this.GridView1.DataBind();
    }
}

0 个答案:

没有答案