我有一个场景,其中有一个项目模板,其中包含2个控件(标签和超链接)。根据我要隐藏/显示标签/超链接的数据类型。在研究甚至在Telerik网站上查找文档之后,这里是我想出来的,我的.Text属性总是一个空字符串,所以我不知道我做错了什么。
下面是我如何使用硬编码的DataTable绑定网格。第一行中的MARK列显然有一个值" MARK"所以我不知道为什么.Text总是空的。
protected void gridStudentGrade_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
//X axis column: "STUDENT"
//Y axis column: "COURSE"
//Z axis column: "GRADE"
DataTable table = new DataTable();
table.Columns.Add("Course", typeof(string));
table.Columns.Add("Student1", typeof(string));
table.Columns.Add("Student2", typeof(string));
table.Columns.Add("Student3", typeof(string));
table.Rows.Add("", "MARK", "BRIAN", "ALEX");
table.Rows.Add("MATH", 80, 95, 70);
table.Rows.Add("SCIENCE", 55, 80, 72);
table.Rows.Add("ENGLISH", 70, 85, 65);
(sender as RadGrid).DataSource = table;
}
protected void gridStudentGrade_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
Label label1 = item.FindControl("label1") as Label;
HyperLink hyperlink1 = item.FindControl("hyperlink1") as HyperLink;
string student1= item["Student1"].Text;
if (student1 == "MARK")
{
label1.Visible = true;
hyperlink1.Visible = false;
}
else
{
label1.Visible = false;
hyperlink1.Visible = true;
}
}
}
答案 0 :(得分:0)
您展示的代码看起来很好。但是,您需要确保AutoGenerateColumns
RadGrid属性设置为true
。所以网格的标记看起来像:
<telerik:RadGrid ID="gridStudentGrade" runat="server"
OnNeedDataSource="GridItems_NeedDataSource"
OnItemDataBound="gridStudentGrade_ItemDataBound">
AutoGenerateColumns="true"
</telerik:RadGrid>