关于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
}