首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Gridview求值条件未正常工作

Gridview求值条件未正常工作
EN

Stack Overflow用户
提问于 2015-07-20 11:43:44
回答 1查看 499关注 0票数 3

我有数据库表的主题,故障,小时值存储在数据库中,如1,2,3,4和5。我想禁用已单击的复选框,但在我的结果中它阻塞了整行,而不是特定的检查box.help我从这些问题。我已经上传了我的示例代码和数据库架构如下

代码语言:javascript
复制
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowDataBound="GridView1_RowDataBound">
         <Columns>
            <asp:BoundField DataField="datee" HeaderText="Day/Hour" SortExpression="datee" />
            <asp:TemplateField HeaderText="Hour1">
                <EditItemTemplate>
                    <asp:CheckBox ID="chkColumn1" runat="server" />
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:CheckBox ID="chkHour1" runat="server" Checked='<%# Convert.ToBoolean((int)Eval("hour"))%>' Enabled='<%# Convert.ToBoolean((int)Eval("hour")!=1) %>' OnCheckedChanged="chkHour1_CheckedChanged"/>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Hour2">
                <EditItemTemplate>
                    <asp:CheckBox ID="ChkColumn2" runat="server"/>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:CheckBox ID="chkHour2" runat="server" Checked='<%#Convert.ToBoolean((int)Eval("hour"))%>' Enabled='<%# Convert.ToBoolean((int)Eval("hour")!=2) %>' OnCheckedChanged="chkHour2_CheckedChanged"/>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Hour3">
                <EditItemTemplate>
                    <asp:CheckBox ID="chkColumn3" runat="server"/>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:CheckBox ID="chkHour3" runat="server" Checked='<%#Convert.ToBoolean((int)Eval("hour"))%>' Enabled='<%# Convert.ToBoolean((int)Eval("hour")!=3) %>' OnCheckedChanged="chkHour3_CheckedChanged"/>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Hour4">
                <EditItemTemplate>
                    <asp:CheckBox ID="chkColumn4" runat="server"/>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:CheckBox ID="chkHour4" runat="server" Checked='<%#Convert.ToBoolean((int)Eval("hour"))%>' Enabled='<%# Convert.ToBoolean((int)Eval("hour")!=4) %>' OnCheckedChanged="chkHour4_CheckedChanged"/>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Hour5">
                <EditItemTemplate>
                    <asp:CheckBox ID="chkColumn5" runat="server"/>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:CheckBox ID="chkHour5" runat="server" Checked='<%#Convert.ToBoolean((int)Eval("hour"))%>' Enabled='<%# Convert.ToBoolean((int)Eval("hour")!=5) %>' OnCheckedChanged="chkHour5_CheckedChanged"/>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>





using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
            {
                con.Open();
                SqlDataAdapter cmd = new SqlDataAdapter("select DISTINCT datee,hour from tblfac order by datee", con);
                DataTable dt = new DataTable("dt");
                cmd.Fill(dt);
                GridView1.DataSource = dt;
                GridView1.DataBind();
            }

我只点击了一个复选框值,但它阻止了整个column.help me从问题中消失

EN

回答 1

Stack Overflow用户

发布于 2015-07-24 00:13:41

如果我没理解错的话,问题是行中的所有五个复选框都被选中了,而不管小时的值是什么。这是因为您正在使用

代码语言:javascript
复制
Checked='<%#Convert.ToBoolean((int)Eval("hour"))%>'

若要设置复选框的值,请执行以下操作。您正在将小时的整数值转换为布尔值。Convert.ToBoolean会将任何非零整型转换为true,所以只要小时不是零,复选框就会被选中。

工作示例:

在代码隐藏中创建数据源:

代码语言:javascript
复制
DataTable dt = new DataTable("dt");
dt.Columns.Add("datee", typeof(string));
dt.Columns.Add("hour", typeof(int));

dt.Rows.Add("06-Jul-15 12:00:00 AM",1);
dt.Rows.Add("07-Jul-15 12:00:00 AM",2);
dt.Rows.Add("08-Jul-15 12:00:00 AM",3);
dt.Rows.Add("09-Jul-15 12:00:00 AM",4);
dt.Rows.Add("10-Jul-15 12:00:00 AM",5);

GridView1.DataSource = dt;
GridView1.DataBind();

Gridview:

代码语言:javascript
复制
 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
     <Columns>
        <asp:BoundField DataField="datee" HeaderText="Day/Hour" SortExpression="datee" />
        <asp:TemplateField HeaderText="Hour1">
            <ItemTemplate>
                <asp:CheckBox ID="chkHour1" runat="server" Checked='<%# Convert.ToBoolean((int)Eval("hour")==1)%>' Enabled='<%# Convert.ToBoolean((int)Eval("hour")!=1) %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Hour2">
            <ItemTemplate>
                <asp:CheckBox ID="chkHour2" runat="server" Checked='<%#Convert.ToBoolean((int)Eval("hour")==2)%>' Enabled='<%# Convert.ToBoolean((int)Eval("hour")!=2) %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Hour3">
            <ItemTemplate>
                <asp:CheckBox ID="chkHour3" runat="server" Checked='<%#Convert.ToBoolean((int)Eval("hour")==3)%>' Enabled='<%# Convert.ToBoolean((int)Eval("hour")!=3) %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Hour4">
            <ItemTemplate>
                <asp:CheckBox ID="chkHour4" runat="server" Checked='<%#Convert.ToBoolean((int)Eval("hour")==4)%>' Enabled='<%# Convert.ToBoolean((int)Eval("hour")!=4) %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Hour5">
            <ItemTemplate>
                <asp:CheckBox ID="chkHour5" runat="server" Checked='<%#Convert.ToBoolean((int)Eval("hour")==5)%>' Enabled='<%# Convert.ToBoolean((int)Eval("hour")!=5) %>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>  

结果只显示一个选中的框,并且该框被禁用:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31508544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档