У меня есть gridview, который принимает данные из 3 таблиц.
И у этого вида сетки также есть дополнительный столбец под названием «Роль», который не включен в базу данных.
В настоящее время, не добавляя никакой логики, а просто используя findcontrol для метки «Роль», я могу показать «ML»
Но, когда я добавляю логику, она вообще не появляется.
В любом случае, кто-нибудь знает, как вставить «ML» в столбец «Роль», который не найден в базе данных, но является ссылкой из другого столбца, найденного в базе данных.
Это коды, используемые для отображения «ML» в столбце роли.
protected void gridAMDisplay_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//find the Label control using FindControl and set its Text on some column value
DataRowView row = (DataRowView)e.Row.DataItem;
if (!DBNull.Value.Equals(row["ModuleLeader"]))
{
if (row["ModuleLeader"].ToString() == "ModuleStr")
{
Label lbl = e.Row.FindControl("lblRole") as Label;
if (lbl != null)
{
lbl.Text = "ML";
}
}
}
}
}
Эта часть кода при отключении комментария, ML может отображаться в столбце роли, в противном случае ничего не отображается.
Поэтому я чувствую, что часть findcontrol работает. НО, ссылка не работает.
if (row["ModuleLeader"].ToString() == "ModuleStr")
{
Как я уже упоминал, столбец роли не был включен ни в одну из таблиц в БД.
Поэтому я добавил в эти коды.
<asp:TemplateField HeaderText="Role">
<ItemTemplate>
<asp:Label ID="lblRole" runat="server" Text="" />
</ItemTemplate>
</asp:TemplateField>
Но проблема, с которой я столкнулся сейчас, заключается в том, что столбец роли не ссылается на предполагаемый столбец, который называется «Лидеры модулей»