问题描述
repeater控件如下,我想从数据源中分别读取isAdmissionBrochure、isLatestNotice的列值,然后判断checkbox是否应该选中,他们两列的数据类型均为bit。现在遇到的问题是,只要我在前台使用绑定checked='',不论我从数据库里取出来的值是什么,checkbox都是选中状态。<asp:RepeaterID="repCatManager"runat="server"><ItemTemplate><tr><tdclass="caId"><%#Eval("id")%></td><tdclass="caName"><inputname='caName<%#Eval("id")%>'type="text"value='<%#Eval("name")%>'/></td><td><inputname='cbIsAdmissionBrochure<%#Eval("id")%>'type="checkbox"checked='<%#Eval("isAdmissionBrochure").ToString()=="True"?true:false%>'/></td><td><inputname='cbIsLatestNotice<%#Eval("id")%>'type="checkbox"checked='<%#Eval("isLatestNotice").ToString()=="True"?true:false%>'/></td><td><asp:LinkButtonID="lbtnDelCa"runat="server"CommandArgument='<%#Eval("id")%>'OnClientClick="returnconfirm('删除类别会使其下新闻及评论全都删除,是否真的要删除?')"OnClick="lbtnDelCa_Click">删除</asp:LinkButton></td><buttonname="button1"type="submit"></button></ItemTemplate></asp:Repeater>
显示效果如下:求解答!!!
解决方案
解决方案二:
解决方案三:
解决方案四:
解决方案五:
求帮忙解决。我知道给checked加上属性就显示,但是我需要通过数据库里的数据判断是否需要显示,如何实现??
解决方案六:
checked只能通过javascript代码才能设置true/false。通过SetAttriubte只能设置文本“checked”(通过RemoveAttribute取消)。至少可以选择两种方式:1.使用asp.net的CheckBox控件。2.设置你自己的class,并且(在页面底部)使用javascript遍历具有此特定class的所有htmlelement,为其统一设置checked属性。
解决方案七:
既然你选择这种asp.net来输出htmlelement的方式,那么就应该多多使用asp.net控件。自己拼html是下策。
解决方案八:
解决方案九:
引用6楼sp1234的回复:
既然你选择这种asp.net来输出htmlelement的方式,那么就应该多多使用asp.net控件。自己拼html是下策。
我最初是想用aspx服务器控件,但是在repeater里貌似不可以使用服务器控件,所以说我现在用哪种方法最合适?
解决方案十:
引用8楼love3answer的回复:
Quote: 引用6楼sp1234的回复:
既然你选择这种asp.net来输出htmlelement的方式,那么就应该多多使用asp.net控件。自己拼html是下策。我最初是想用aspx服务器控件,但是在repeater里貌似不可以使用服务器控件,所以说我现在用哪种方法最合适?
我说错了,是不能绑定数据并自定义ID<asp:CheckBoxID="cbIsAdmissionBrochure<%#Eval("id")%>"runat="server"/>
解决方案十一:
设置class数据库里的选中是一个class没选中是一个class
解决方案十二:
用<%if(){}%>吧,如果符合条件,就输出“checked='checked'”
解决方案十三:
引用9楼love3answer的回复:
我说错了,是不能绑定数据并自定义ID<asp:CheckBoxID="cbIsAdmissionBrochure<%#Eval("id")%>"runat="server"/>
本来就不应该绑定ID。
解决方案十四:
引用12楼sp1234的回复:
Quote: 引用9楼love3answer的回复:
我说错了,是不能绑定数据并自定义ID<asp:CheckBoxID="cbIsAdmissionBrochure<%#Eval("id")%>"runat="server"/>本来就不应该绑定ID。
不绑定id我们怎么通过aspx控件,从数据库中取出数据,最终设置checkbox的选中状态?除了用js
解决方案十五:
解决方案:
引用13楼love3answer的回复:
Quote: 引用12楼sp1234的回复:
Quote: 引用9楼love3answer的回复:
我说错了,是不能绑定数据并自定义ID<asp:CheckBoxID="cbIsAdmissionBrochure<%#Eval("id")%>"runat="server"/>本来就不应该绑定ID。
不绑定id我们怎么通过aspx控件,从数据库中取出数据,最终设置checkbox的选中状态?除了用js
为什么一定要绑定ID?直接指定ID不可以吗?你不会是把控件ID存在数据库中设置是否可见的吧?如果是这样,那么设计思路有问题
解决方案:
<inputname='cbIsLatestNotice<%#Eval("id")%>'type="checkbox"<%#Eval("isLatestNotice").ToString()=="True"?"checked":""%>>
解决方案:
只要有checked这个attr,就是选中的正确的写法是选中checked="checked"不选中没有checked
解决方案:
引用16楼wyd1520的回复:
<inputname='cbIsLatestNotice<%#Eval("id")%>'type="checkbox"<%#Eval("isLatestNotice").ToString()=="True"?"checked":""%>>
这个就好。