日期:2014-05-19  浏览次数:20420 次

关于Checkbox,请问这个可以做到么?
数据库中有一项是int类型,但只有0、1,因为已经在使用的部分模块的关系不可能改成bool了,现在要在deatilsview中用checkbox表现出来。我写了如下代码:

<asp:TemplateField>
        <ItemTemplate>
            <asp:CheckBox   ID= "lbENABLE "   Checked= ' <%#   Eval( "ISENABLE ").ToString()== "1 "   %> '   runat= "server "   > </asp:CheckBox>
        </ItemTemplate>
        <EditItemTemplate>
            <asp:CheckBox   ID= "lbENABLE_EDIT "   Checked= '????? '   runat= "server "   > </asp:CheckBox>
        </EditItemTemplate>

请问 "????? "的地方可以实现选中就更新数据库为1的操作吗?TextBox我知道用Bind( " "),但这里不清楚怎么搞。。

------解决方案--------------------
可以的只不过操作复杂点,把下面的ID改成你的主键,在aspx 加上
<script language= "javascript ">

function setAbc(varcheck)
{
var confirmmsg = "确认此次操作 ? "
if(!confirm(confirmmsg))
{
return false;;
}
var hidvalue = document.getElementById( 'abc ');
if(varcheck.checked)
{
hidvalue.value = '1 ';
}
else
{
hidvalue.value = '0 ';
}
hidvalue.value += ', '+varcheck.value;
document.getElementById( 'LinkButton1 ').click();
}
</script>

<asp:LinkButton ID= "LinkButton1 " runat= "server " BackColor= "#FFFFFF " OnClick= "改变点击显示 "> </asp:LinkButton>
<input id= "abc " type= "hidden " runat= "server " />

<EditItemTemplate>
<input name= "abc " type= "checkbox " value= ' <%# Eval( "ID ") %> ' onclick= "return setAbc(this) " <%# Eval( "ISENABLE ").ToString()== "1 "? "Checked ": " " %> />
</EditItemTemplate>


*.aspx.cs中,
protected void 改变点击显示(object sender, EventArgs e)
{
string s = abc.Value;
string[] sa = s.Split( ', ');
//下面是你的代码操作
s[0] 要改变成为 "0 "或是 "0 "
s[1] 需要改变的主键ID

}