У меня есть сетка в моем aspx, которая связана с данными из базы данных. У него есть флажок. Когда я изменяю проверенный статус со стороны клиента, изменения не отображаются в коде. Есть идеи, почему это происходит?
<asp:Button OnClick="Btn_Click" CommandArgument="<%# GridViewUserList %>" runat="server" Text="Save" />
<asp:GridView runat="server" ID="GridViewUserList" AutoGenerateColumns="false" ShowFooter="false" ShowHeader="true" Width="100%">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:Label ID="isSelectHeader" runat="server" Text="Assign" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="isAssigned" runat="server" Checked='<%#DataBinder.Eval(Container.DataItem, "IsAssigned") %>'/>
</ItemTemplate>
<ItemStyle Width="5%" HorizontalAlign="Center" VerticalAlign="top" />
<FooterStyle Width="5%" HorizontalAlign="Center" VerticalAlign="top" />
<HeaderStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:BoundField DataField="Salutation" HeaderText="User"/>
</Columns>
</asp:GridView>
Вот мой код позади.
protected void Btn_Click(object sender, EventArgs e)
{
for (int i = 0; i < userLicenseList.Count; i++)
{
var isAssigned = GridViewUserList.Rows[i].FindControl("isAssigned") as CheckBox;
if (isAssigned.Checked != userLicenseList.ElementAt(i).IsAssigned)
{
//some code
}
}
}
isAssigned.Checked
имеет предыдущее значение, а не измененное значение.
userLicenseList
имеет данные из базы данных.