我正在使用SQL Server 2012和VS2013。 我想设计一个动态Radmenu(Telerik),它与sql server数据绑定。但它没有在运行时显示,也没有发生错误。
这是代码。
<telerik:RadScriptManager runat="server" ></telerik:RadScriptManager>
<telerik:RadMenu ID="RadMenu1" runat="server" style="top: 0px; left: 0px; width: 800px;height:auto"
Skin="Metro">
</telerik:RadMenu>
代码隐藏
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
myCnn = new SqlConnection(myCnnstring);
myCnn.Open();
mysql = "select * from SYS_Menu";
mycmd = new SqlCommand(mysql, myCnn);
myda = new SqlDataAdapter(mycmd);
myds = new DataSet();
myda.Fill(myds);
mydt = new DataTable();
mydt = myds.Tables[0];
RadMenu1.DataSource = mydt;
RadMenu1.DataFieldID = "PK_ID";
RadMenu1.DataFieldParentID = "ParentID";
//Set Text, Value, and NavigateUrl:
RadMenu1.DataTextField = "TextField";
RadMenu1.DataValueField = "PK_ID";
RadMenu1.DataNavigateUrlField = "URL";
RadMenu1.MaxDataBindDepth = -1;
RadMenu1.DataBind();
myCnn.Close();
}
}
表Sys_menu
PK_ID | PARENTID |的TextField | ValueField | URL
1 | 1个|首页|首页|〜/ NEWVERSION / test2.aspx
10 | 9 | SingleBuilding | SingleBuilding |〜/ NEWVERSION / test2.aspx
11 | 9 | GroupBuilding | GroupBuilding |〜/ NEWVERSION / test2.aspx
2 | 1块|土地|土地|〜/ NEWVERSION / test2.aspx
3 | 2 | LandBlock | LandBlock |〜/ NEWVERSION / test2.aspx
4 | 2 | LandCost | LandCost |〜/ NEWVERSION / test2.aspx
5 | 3 |券|券|〜/ NEWVERSION / test2.aspx
6 | 3 |查询|查询|〜/ NEWVERSION / test2.aspx
7 | 4 |券|券|〜/ NEWVERSION / test2.aspx
8 | 4 |查询|查询|〜/ NEWVERSION / test2.aspx
9 | 1 | BuildingInfo | BuildingInfo |〜/ NEWVERSION / test2.aspx
另一个问题:我读了Telerik的说明,层次结构项的ParentID的根应该是 null ,但它会导致错误。
我该怎么办?提前谢谢。
答案 0 :(得分:0)
这可能是由于父节点在其ParentId列中没有NULL。
在将菜单绑定到数据之前,您可以修改数据(设置空值)吗?
答案 1 :(得分:0)
make root元素的ParentID列值为null。
1|1|Home|Home|~/NewVersion/test2.aspx