为评估和演示设置选中的值(布尔) [英] Setting checked value for Eval(bool)

查看:108
本文介绍了为评估和演示设置选中的值(布尔)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个属性。

 公共BOOL AutoRenew
{
    得到;
    组;
}

和页面:

 <输入类型=复选框选中='<%#的eval(AutoRenew)%>' />

但它始终是检查,即使属性的值是

我尝试了以下变化:

 <输入类型=复选框选中='<%#Convert.ToBoolean(EVAL(AutoRenew))%GT;' />
<输入类型=复选框选中='<%#Convert.ToBoolean(EVAL(AutoRenew))==真%GT;' />
<输入类型=复选框选中='<%#(布尔)的eval(AutoRenew)%>' />

但没有任何工程,它不断被检查。我应该恩pression什么样子的?

编辑:这里是页面有问题的一部分:

  ...
< ASP:ListView控件ID =MyListView=服务器>
    <&LayoutTemplate模板GT;
        <表类=MS-listviewtable的风格=背景色:白色;>
            &所述; TR类=MS-viewheadertr毫秒-vhltr>
                百分位类=MS-VH-图标范围=山口>
                    <输入类型=复选框/>
                < /第i
                百分位类=MS-VH2>
                    < D​​IV CLASS =MS-VH-DIV>< A>培训项目< / A>< / DIV>
                < /第i
                百分位类=MS-VH2>
                    < D​​IV CLASS =MS-VH-DIV>< A>培训任务类型< / A>< / DIV>
                < /第i
                百分位类=MS-VH2>
                    < D​​IV CLASS =MS-VH-DIV>< A>截止日期< / A>< / DIV>
                < /第i
                百分位类=MS-VH2>
                    < D​​IV CLASS =MS-VH-DIV>< A>自动更新< / A>< / DIV>
                < /第i
                百分位类=MS-VH2>
                    < D​​IV CLASS =MS-VH-DIV>< A>培训原因及LT; / A>< / DIV>
                < /第i
            < / TR>
            < TR ID =itemplaceholder=服务器>< / TR>
        < /表>
    < / LayoutTemplate模板>
    <&ItemTemplate中GT;
        < TR类=MS-itmhover>
            < TD类=MS-VB-itmcbx MS-VB-firstCell>
                <输入类型=复选框级=S4-ITM-CBX/>
            < / TD>
            < TD类=MS-VB-标题>
                < D​​IV CLASS =MS-VB ITX>< A><%#的eval(标题)%>< / A>< / DIV>
            < / TD>
                < TD类=MS-VB2>
                    < ASP:DropDownList的ID =TaskTypeDropDownList=服务器>
                    < / ASP:DropDownList的>
                < / TD>
                < TD类=MS-VB2><%#的eval(交货期)%>< / TD>
                < TD类=MS-VB2的风格=文本对齐:中心;>
                    <输入类型=复选框选中='<%#Convert.ToBoolean(EVAL(AutoRenew))%GT;' />
                < / TD>
                < TD类=MS-VB2><%#的eval(TrainingReason)%>< / TD>
            < / TR>
        < / ItemTemplate中>
        ...


解决方案

您使用的是普通的HTML复选框

将数据绑定到您必须使用检查佩林HTML复选框=选中

如果您使用ASP.NET复选框控件,然后你原来的code将工作的顺利开展。

有是纯HTML控件和放大器之间的差异; ASP.NET数据绑定控件时

  //的asp.net复选框
 < ASP:复选框ID =IdCheckBox=服务器选中=<%#Convert.ToBoolean(EVAL(AutoRenew))%GT; />//为纯HTML复选框
<输入类型=复选框<%#Convert.ToBoolean(EVAL(AutoRenew))? 检查:%GT; />

I have a property

public bool AutoRenew
{
    get;
    set;
}

And in the page:

<input type="checkbox" checked='<%# Eval("AutoRenew") %>' />

but it is always checked, even if the value of the property is false.

I tried the following variations:

<input type="checkbox" checked='<%# Convert.ToBoolean(Eval("AutoRenew")) %>' />
<input type="checkbox" checked='<%# Convert.ToBoolean(Eval("AutoRenew")) == true %>' />
<input type="checkbox" checked='<%# (Boolean)Eval("AutoRenew") %>' />

but nothing works, it keeps being checked. What should the expression look like?

EDIT: Here is the problematic part in the page:

...
<asp:ListView ID="MyListView" runat="server">
    <LayoutTemplate>
        <table class="ms-listviewtable" style="background-color: White;">
            <tr class="ms-viewheadertr ms-vhltr">
                <th class="ms-vh-icon" scope="col">
                    <input type="checkbox" />
                </th>
                <th class="ms-vh2">
                    <div class="ms-vh-div"><a>Training Item</a></div>
                </th>
                <th class="ms-vh2">
                    <div class="ms-vh-div"><a>Training Task Type</a></div>
                </th>
                <th class="ms-vh2">
                    <div class="ms-vh-div"><a>Due Date</a></div>
                </th>
                <th class="ms-vh2">
                    <div class="ms-vh-div"><a>Auto-Renew</a></div>
                </th>
                <th class="ms-vh2">
                    <div class="ms-vh-div"><a>Training Reason</a></div>
                </th>
            </tr>
            <tr id="itemplaceholder" runat="server"></tr>
        </table>
    </LayoutTemplate>
    <ItemTemplate>
        <tr class="ms-itmhover">
            <td class="ms-vb-itmcbx ms-vb-firstCell">
                <input type="checkbox" class="s4-itm-cbx" />
            </td>
            <td class="ms-vb-title">
                <div class="ms-vb itx"><a><%# Eval("Title")%></a></div>
            </td>
                <td class="ms-vb2">
                    <asp:DropDownList ID="TaskTypeDropDownList" runat="server">
                    </asp:DropDownList>
                </td>
                <td class="ms-vb2"><%# Eval("DueDate")%></td>
                <td class="ms-vb2" style="text-align: center;">
                    <input type="checkbox" checked='<%# Convert.ToBoolean(Eval("AutoRenew")) %>' />
                </td>
                <td class="ms-vb2"><%# Eval("TrainingReason")%></td>
            </tr>
        </ItemTemplate>
        ...

解决方案

You are using plain html checkbox

to bind data to palin html checkbox you must use checked="checked"

If you use ASP.NET Checkbox control then your original code will work smoothly.

There is difference between plain html controls & ASP.NET controls when binding data.

 //for asp.net checkbox
 <asp:CheckBox  ID="IdCheckBox" runat="server" Checked="<%# Convert.ToBoolean(Eval("AutoRenew")) %>"  />

//for plain html checkbox
<input type="checkbox" <%# Convert.ToBoolean(Eval("AutoRenew")) ? "checked" : "" %> />

这篇关于为评估和演示设置选中的值(布尔)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆