我的页面上有一个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设置为对象列表,该对象列表是根据各种因素动态创建的。
用户可以将数据输入到任何已启用/非只读的文本框中。然后,按下按钮以提交更改。回发后如何检索更改的数据?以下显然不起作用:
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();
}
}