我想在DataGrid的模板列里加入CheckBoxList,而这个CheckBoxList的item个数又是根据数据库查出的,请问怎么实现?

gfz 2002-12-02 12:45:22
请给详细说明和代码!
...全文
24 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sin360 2002-12-03
  • 打赏
  • 举报
回复
也许对你有启发。
我用的是自定义控件,在摸班中嵌套了控件(菜单-》子菜单-》菜单项)

<%@ Control Language="C#" Debug="true" %>
<%@ Register TagPrefix="lei" TagName="menuitem" Src="UserLayerSubMenuObject.ascx" %>
<%@ import Namespace="System" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<%@ import Namespace="System.Reflection" %>
<%@ import Namespace="Lei.BusinessLayer" %>
<script runat="server">

// Insert user control code here
//
public string MenuUserClientID="0";
public string MenuUserRoleNo="0";
public string MenuUserParentNo="0";

void BindMenu()
{
string sqlStr = "status = 1 and parentNo = "+MenuUserParentNo;
sqlStr += " and ( menuNo in (select parentNo from t_menulayout where menuNo in (select parentNo from v_menugrants where clientID = '"+this.MenuUserClientID+"' and roleNo = " + this.MenuUserRoleNo+"))";
sqlStr += " or menuNo in (select parentNo from v_menugrants where clientID = '"+this.MenuUserClientID+"' and roleNo = " + this.MenuUserRoleNo+"))";

MenulayoutObject userObj = new MenulayoutObject();
DataSet userData = userObj.GetData(sqlStr);
MenuDataList.DataSource = userData.Tables[0].DefaultView;
MenuDataList.DataBind();
}

void Page_Load(Object Sender, EventArgs E)
{
//if (!Page.IsPostBack)
{
//if(UserClientID.Length>0 && RoleNo.Length>0)
BindMenu();
}
}
</script>
<asp:Repeater id="MenuDataList" runat="server">
<ItemTemplate>
<div class="<%#DataBinder.Eval(Container.DataItem, "leaf").ToString()=="1"?"tbMenuItem":"tbMenu"%>"
id="Menu_<%#DataBinder.Eval(Container.DataItem, "menuNo")%>" LANGUAGE="javascript"
onclick="<%#DataBinder.Eval(Container.DataItem, "leaf").ToString()=="1"?"js_doWorkUrl("+Page.Request.ApplicationPath+"/"+DataBinder.Eval(Container.DataItem, "href")+";":""%>"
title='<%#DataBinder.Eval(Container.DataItem, "appendix")%>'> <%# DataBinder.Eval(Container.DataItem, "title") %>
<LEI:MENUITEM id="usermenuitem" runat="server" MenuUserParentNo='<%#DataBinder.Eval(Container.DataItem, "menuNo").ToString() %>' MenuUserRoleNo="<%#MenuUserRoleNo%>" MenuUserClientID="<%#MenuUserClientID%>"></LEI:MENUITEM>
</div>
</ItemTemplate>
</asp:Repeater>
</div>
.................
buaawjh 2002-12-02
  • 打赏
  • 举报
回复
OnItemDataBound事件中
dim cbl as checkboxlist

cbl=e.item.findcontrol("checkboxlist1")
cbl.datasource=...
cbl.DataTextField="id"
cbl.DataValueField="name"
cbl.databound()
gfz 2002-12-02
  • 打赏
  • 举报
回复
请再详细些!在cs文件中怎么实现?
qiushuiwuhen 2002-12-02
  • 打赏
  • 举报
回复
1。
<asp:TemplateColumn>
<ItemTemplate>中
<asp:CheckBoxList id=cbl_test runat=server/>

2。
OnItemDataBound中

CheckBoxList cbl=(CheckBoxList)e.Item.FindControl("cbl_test");
if(cbl!=null){
cbl.DataSource = sth;
cbl.DataBind();
}

62,250

社区成员

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

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

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

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