У меня есть сценарий, в котором у меня есть шаблон элемента с двумя элементами управления (ярлык и гиперссылка). Основываясь на типе данных, я собираюсь скрыть/показать ярлык/гиперссылку. После проведения исследований и даже поиска документации на сайте Telerik вот что я придумал, и мое свойство .Text всегда является пустой строкой, поэтому я не знаю, что я делаю неправильно.Доступ к значению dataitem в событии RadGrid_ItemDataBound (dataItem ["column"]. Текст всегда пуст)
Ниже приведен пример того, как я привязываю свою сетку к жестко закодированному 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;
}
}
}
Это была моя ошибка. Я действительно пытался получить доступ к значению .Text GridTemplateColumn ... В этом случае мне просто нужно найти элемент управления в ItemTemplate и получить его значение свойства .Text. – JTunney