我用了datalist嵌套checkboxlist,但checkboxlist怎么也不能动态绑定数据;
我想实现这种效果;大类(例:办公耗材)
口 小类(例:打印纸) 口 小类(例:打印纸) 口 小类(例:打印纸)
口 小类(例:打印纸) 口 小类(例:打印纸) 口 小类(例:打印纸)而且大类和小类都是从数据库中提取的.
小类绑定时我用了
DataSource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("relation") %>'
但显示不出数据,高手们救命呀
我想实现这种效果;大类(例:办公耗材)
口 小类(例:打印纸) 口 小类(例:打印纸) 口 小类(例:打印纸)
口 小类(例:打印纸) 口 小类(例:打印纸) 口 小类(例:打印纸)而且大类和小类都是从数据库中提取的.
小类绑定时我用了
DataSource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("relation") %>'
但显示不出数据,高手们救命呀
解决方案 »
- 谁有经典样式表的教程 急需
- marquee滚到的内容是从别的地方传进来的,这个参数怎么写。
- 在线等。速度来呀。。
- 怎么办,即便没有查到数据,也不能让datagrid在屏幕上显示空白,至少应该有表头和最末尾的合计吧!
- 免费提供asp.net的空间,大小不限,需要的请跟贴!
- 菜鸟跪求ASP.NET如何学习........(100分)
- CodeDOM 是什么?如何使用?
- 读取access数据库,绑定treeview的问题。
- 请问如何让TextBox回车后自动PostBack?
- 如何在代码分离的C#文件里调用客户端的javascript函数?来者有分
- windows form认证?
- ◆IE7.0◆URL编码转换问题,Punycode编码,IDN
http://support.microsoft.com/kb/306154/zh-cn
<asp:datalist id="DataList1" runat="server" Width="688px" CssClass="pt10" OnItemDataBound="DataList1_ItemDataBound">
<ItemTemplate>
<asp:Label id=Father_ID runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Father_ID")%>' Visible="False">
</asp:Label>
<asp:Label id="Application_Name" runat="server" Width="100" ForeColor="#ffffff" BackColor="#339966"></asp:Label><BR>
<asp:CheckBoxList id="Application_ID" runat="server" CssClass="pt10" Visible="true" RepeatColumns="5"
Height="30px"></asp:CheckBoxList>
</ItemTemplate>
</asp:datalist>
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!Page.IsPostBack)
{
this.DataList1.DataSource=Bll.Application_System_GetSource();
this.DataBind();
}
}
public void DataList1_ItemDataBound(Object sender, DataListItemEventArgs e)
{
Label Father_ID=(Label)e.Item.FindControl("Father_ID");
Label Application_Name=(Label)e.Item.FindControl("Application_Name"); if (Application_Name!=null)
{
Model=Bll.GetApplication_SystemDetail(Father_ID.Text.Trim());
Application_Name.Text=" "+Model.Application_Name;
}
if(Father_ID!=null )
{
System.Web.UI.WebControls.CheckBoxList Application_ID=(System.Web.UI.WebControls.CheckBoxList)e.Item.FindControl("Application_ID");
Application_ID.DataSource=Bll.Application_System_GetSource(Father_ID.Text.Trim());
Application_ID.DataTextField="Application_Name";
Application_ID.DataValueField="Application_ID";
Application_ID.DataBind();
}
}
其中用到DataRow.GetChildRows,那么必须要定义好表间关系 DataRelationyb2008的方法也可以,思路比较清晰,但是不如楼主自己的方便~
DataColumn childCol = DataSet1.Tables["Orders"].Columns["CustID"];
DataRelation relCustOrder = new DataRelation("CustomersOrders", parentCol, childCol);
DataSet1.Relations.Add(relCustOrder);
System.Data.Rows,是怎么回事呢
1.在Page_Load中绑定datalist:父数据源2.在datalist的OnItemDataBound事件中根据父数据源的id,找到满足条件的子数据源绑定到checkboxlist中!
this.DataList1.DataSource=Bll.Application_System_GetSource();
this.DataBind();
我这里不太明白,再解释一下好吗?谢谢.要绑定数据库呀,你怎么没有连接数据库的代码
<asp:TemplateColumn ItemStyle-HorizontalAlign="center" HeaderText="顺序码" ItemStyle-Width="10%">
<ItemTemplate>
<asp:Label id="ShowSortID" runat="server" Text='<%# Container.DataItem("SortID") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="SortID" runat="server" DataSource="<%# DDLBind()%>" SelectedValue='<%# Container.DataItem("SortID")%>'>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
后台:
Protected Function DDLBind() As ArrayList
Dim arrCount As New ArrayList
Dim i As Integer
For i = 0 To pager.RecordCount
arrCount.Add(i)
Next
Return arrCount
End Function希望楼主可以有所收获!
你如果要测试可以随便返回一个数据源就可以了!
谢谢"零零五",那我绑定checkboxlist时定义datatextfield时怎么显示不出来,那里只显示
System.Data.Rows,是怎么回事呢 ---------
再细心检查一下,看看有没有写错~
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBoxList id="CheckBoxList1" runat="server" DataTextField="field1" DataValueField="field2" DataSource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("relation") %>'
></asp:CheckBoxList>
</ItemTemplate>
</asp:TemplateColumn>
把你的这两个DataTable的数据结构列出来一下吧:btw:我们公司不能用QQ、MSN等即时通讯工具...
要不就是用TABLE自己画表格。反正就是不喜欢用DataList……
我的表格
menu submenu
id id
menuname Mid(就是表menu的id)
addtime subname
addtime
就是这两个表关联.
谢谢零零五热帮助
......reader = cmd.ExecuteReader();
boardList.DataSource = reader;
boardList.DataTextField = "Name";
boardList.DataValueField = "ID";
boardList.DataBind();
..........