Как скрыть и отобразить шаблоны элементов в форме просмотра в зависимости от некоторых условий?
Здесь я получаю некоторые значения с предыдущей страницы, используя сессию для проверки условия:
string PTN = Session["PrimaryTool"].ToString();
string PTE = Session["PrimaryToolExp"].ToString();
if (PTN != null && PTE != null)
{
if (fvJobApplying.CurrentMode == FormViewMode.ReadOnly)
{
Label PT = (Label)fvJobApplying.FindControl("lblPrimaryTool");
PT.Visible = true;
Label PTExperience = (Label)fvJobApplying.FindControl("lblPrimaryToolExp");
PTExperience.Visible = true;
Label Experience = (Label)fvJobApplying.FindControl("lblExperience");
Experience.Visible = false;
}
}
Мои значения сеанса и мое состояние работают нормально... Здесь, в зависимости от условия, как показать и скрыть столбцы или шаблоны элементов в formview в asp.net
1 ответ
Не ясно, какая проблема / ошибка у вас на самом деле, однако...
Не использовать Page_Load
связать или получить доступ к вашему FormView
вместо этого используйте FormView
"s DataBound
событие и CurrentMode
свойство:
protected void fvJobApplying_DataBound(object sender, System.EventArgs e)
{
if(fvJobApplying.CurrentMode == FormViewMode.ReadOnly)
{
// here you can safely access the FormView's ItemTemplate and it's controls via FindControl
Label PT = (Label)fvJobApplying.FindControl("lblPrimaryTool");
PT.Visible = true;
}
else if(fvJobApplying.CurrentMode == FormViewMode.Edit)
{
// here you can safely access the FormView's EditItemTemplate and it's controls via FindControl
}
else if(fvJobApplying.CurrentMode == FormViewMode.Insert)
{
// here you can safely access the FormView's InsertItemTemplate and it's controls via FindControl
}
}
Так что найдите там свои ярлыки и установите желаемый Visibility
, Это событие срабатывает, когда вы DataBind
FormView.