问个很菜的问题.关于DataGrid模板列里的Checkbox的控制

xv84 2005-10-28 01:44:45
DataGrid模板列里有个Checkbox
从数据库里读出数据放到DataSet里
表中有个Locked的字段,如果里边的值为1那么Checkbox打钩.

这样效果这么做?

请给段代码演示下
...全文
217 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
mailxin 2005-11-02
  • 打赏
  • 举报
回复
<ItemTemplate>
<asp:CheckBox id="Checkbox1" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Locked")%> ' Checked='<%# Check(Convert.ToString(DataBinder.Eval(Container, "Locked")))%>'>
</asp:CheckBox>
</ItemTemplate>
-------------------
public Boolean Check(string str_locked)
{
if(str_locked=="1")
{
return true;
}
else
{
return false;
}

}
stoneallen 2005-11-02
  • 打赏
  • 举报
回复
<ItemTemplate><asp:CheckBox id="CheckBox1" runat="server" Width="24px"
Checked='<%# DataBinder.Eval(Container, "DataItem.Locked").ToString()=="1"%>'>
</asp:CheckBox>
</ItemTemplate>
xv84 2005-11-02
  • 打赏
  • 举报
回复
up....
xv84 2005-11-01
  • 打赏
  • 举报
回复
up....大家帮帮忙啊,要结帖了啊
xv84 2005-10-31
  • 打赏
  • 举报
回复
试了一下.除了 adandelion(被封杀) 说的那种笨方法可以用,其他的都出问题.不知道什么原因..

-------------------------------
zfhuangwei(追风小蛇)
<asp:TemplateColumn HeaderText="YourBoolField">
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server" Checked='<%# iif(DataBinder.Eval(Container.DataItem, "YourBoolField")="1",true,false) %>'></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
---------------------------
感觉很简洁,但是运行却不行.你们测试过吗?
Container.DataItem 是什么要替换吗?
srj911 2005-10-28
  • 打赏
  • 举报
回复
简单问题,正确答案还是很多的,复杂问题呢?
学习
zjw2004112 2005-10-28
  • 打赏
  • 举报
回复
学习-ing
zfhuangwei 2005-10-28
  • 打赏
  • 举报
回复
<asp:TemplateColumn HeaderText="YourBoolField">
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server" Checked='<%# iif(DataBinder.Eval(Container.DataItem, "YourBoolField")="1",true,false) %>'></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
adandelion 2005-10-28
  • 打赏
  • 举报
回复
cuike519(Help you,Help me) 的方法好多了,直接用SQL语句写就可以了.我提供的方法太笨!
-------------
SELECT id,name,CASE Locked WHEN 1 THEN 'true' ELSE 'false' END AS Locked
FROM table1

这样就不需要DataBound事件里设置了.

<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox ID="cbxNews" Checked ='<%# DataBinder.Eval(Container.DataItem,"Locked")%>' runat="server" AutoPostBack="False"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
LFreeX 2005-10-28
  • 打赏
  • 举报
回复
使用客户端的CHECKBOX
<asp:TemplateColumn HeaderText="Main Cause">
<ItemStyle Width="50px" HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<INPUT id="chkMain" disabled type="checkbox" <%# FormatChkMain(DataBinder.Eval(Container.DataItem, "FlagMain"))%>>
</ItemTemplate>
</asp:TemplateColumn>
C#代码
public string FormatChkMain(object MainCause)
{
if(MainCause!=System.DBNull.Value)
{
if(Convert.ToBoolean(MainCause))
return "checked = true ";
else
return "";
}
else
return "";
}
用服务器端的CHECKBOX:楼上的回答了

ye_zi 2005-10-28
  • 打赏
  • 举报
回复
楼上的对了,接分
adandelion 2005-10-28
  • 打赏
  • 举报
回复
测试了下,OK.
上面的<asp:Label id="lbLocked" runat="server" text ='<%# DataBinder.Eval(Container.DataItem,"Locked")%>' Visible ="false"></asp:Label>

替换为<asp:Label id="lblLocked" runat="server" text ='<%# DataBinder.Eval(Container.DataItem,"Locked")%>' Visible ="false"></asp:Label>
cuike519 2005-10-28
  • 打赏
  • 举报
回复
<asp:TemplateColumn HeaderText="YourBoolField">
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server" Checked='<%# bool.Parse(DataBinder.Eval(Container.DataItem, "YourBoolField").ToString()) %>'></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
adandelion 2005-10-28
  • 打赏
  • 举报
回复
<asp:Label id="lbLocked" runat="server" text ='<%# DataBinder.Eval(Container.DataItem,"Locked")%>' Visible ="false"></asp:Label>

上面的绑定有问题
adandelion 2005-10-28
  • 打赏
  • 举报
回复
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Label id="lbLocked" runat="server" text ="Locked" Visible = "false"></asp:Label>
<asp:CheckBox ID="cbxNews" runat="server" AutoPostBack="False"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
.....
</Columns>
private void ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
Label lb = (Label) e.Item.FindControl("lblLocked") ;
CheckBox cbx = (CheckBox) e.Item.FindControl("cbxNews");
if (lb != null && cbx != null)
{
if (lb.Text == "1")
{
cbx.Checked = true;
}
}

}
xv84 2005-10-28
  • 打赏
  • 举报
回复
有人没?

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧