为什么gridview中的复选框不起作用?
我在gridview中绑定了一个数据库字段的复选框,该数据库字段存储布尔值,即IsRejected。我试图让它实时,即如果我勾选复选框,那么它应该把数据库中的1或0,我已经尝试过但没有效果。为什么?为什么gridview中的复选框不起作用?
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div>
<asp:GridView ID="grdvwRejectedEmployees" runat="server" AutoGenerateColumns="false" Width="100%"
DataKeyNames="EdrID" CssClass="table table-hover table-striped table-bordered"
AllowPaging="true" AllowSorting="true">
<Columns>
<asp:BoundField DataField="EdrID" HeaderText="Edr ID" />
<asp:BoundField DataField="EmployerName" HeaderText="Employer" />
<asp:BoundField DataField="BranchName" HeaderText="Branch" />
<asp:BoundField DataField="EmployeeUniqueID" HeaderText="EmployeeUniqueID" />
<asp:BoundField DataField="EmployeeName" HeaderText="Employee Name" />
<asp:BoundField DataField="PayStartDate" HeaderText="Pay Start Date" />
<asp:BoundField DataField="PayEndDate" HeaderText="Pay End Date" />
<asp:TemplateField HeaderStyle-CssClass="visible-desktop" ItemStyle-CssClass="visible-desktop">
<ItemTemplate>
<asp:CheckBox ID="chkBoxIsRejection" runat="server" Text='<%# Bind("IsRejected") %>' />
</ItemTemplate>
</asp:TemplateField>
<%--<asp:BoundField DataField="IsRejected" HeaderText="Is Rejected" />--%>
</Columns>
</asp:GridView>
</div>
</ContentTemplate>
</asp:UpdatePanel>
的.cs
if (!IsPostBack)
{
if (Session["UserCredential"] != null)
{
ClsSystemUser user = (ClsSystemUser)Session["UserCredential"];
ClsSystemUser obj = new ClsSystemUser();
obj = obj.GetOrganizationName(user.Type_ID, user.OfficeID, user.SystemUserID);
int usertypeid = user.Type_ID;
if (usertypeid == 3)
{
//UserTypeID.Text = "Branch";
ClsRejectedFiles RejFiles = new ClsRejectedFiles();
grdvwRejectedEmployees.DataSource = RejFiles.GetRejectedFiles("30411098037111", 3, 1);
grdvwRejectedEmployees.DataBind();
}
一样,如果我打勾或取消勾选复选框,然后它不会影响数据库,即价值,如果我签的话,我应该把1数据库IsRejected列或0如果我取消选中
您正在设置复选框的Text
属性与数据字段值尝试设置Checked
属性,以便它将设置复选框值。
<asp:CheckBox
ID="chkBoxIsRejection" runat="server" HeaderText="IsRejection"
Checked='<%#Convert.ToBoolean(Eval("IsRejected")) %>'/>
UPDATE
欧普想更新chagned上复选框检查数据库。为此,您需要添加事件以告知页面如何在复选框选中时发生反应
您需要添加事件CheckedChanged
。 You can read it here.
<asp:CheckBox
ID="chkBoxIsRejection" runat="server" HeaderText="IsRejection"
Checked='<%#Convert.ToBoolean(Eval("IsRejected")) %>'
AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged"/>
然后在后面
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
// write code to save the changes to the database.
}
不起作用,同样的问题,但至少它代表真正的价值,但不实时工作 – 2015-02-11 07:28:40
你的意思是什么,实时不工作? – 2015-02-11 07:29:18
如果我勾选或取消选中复选框,那么它不会影响数据库中的值,即如果我检查那么我应该把1放在数据库IsRejected列或0如果我取消选中 – 2015-02-11 07:39:09
选中复选框的'Checked'财产与您的数据字段代码。您正在设置Text属性。 – 2015-02-11 07:17:35