Управление доступом ASP.net в FormView ItemTemplate - PullRequest
4 голосов
/ 05 мая 2011

У меня есть представление формы с шаблоном элемента с элементом управления внутри, можно ли получить доступ к этому элементу управления OnDatabound, чтобы я мог связать элемент управления с данными.Я использую панель в качестве примера здесь.

<cc1:LOEDFormView ID="FireFormView" runat="server" DataSourceID="DataSourceResults"     CssClass="EditForm" DataKeyNames="id" OnDatabound="FireFromView_Databound">
<ItemTemplate>

<asp:Panel ID ="pnl" runat="server"></asp:Panel>

</ItemTemplate>

</cc1:LOEDFormView>

Ответы [ 4 ]

9 голосов
/ 05 мая 2011

Вы должны также позаботиться о режиме предметов, в котором существует ваш контроль, который вы хотите найти. Как если бы ваш элемент управления в шаблоне элемента, то это было бы как ..

if (FormView1.CurrentMode == FormViewMode.ReadOnly)
{

  Panel pnl = (Panel)FormView1.FindControl("pnl");
}
1 голос
/ 05 января 2016

Этот код ниже решил мою проблему. Хотя пример обращается к метке, он применяется к большинству элементов управления. Вам просто нужно добавить событие DataBound к вашему FormView.

protected void FormView1_DataBound(object sender, EventArgs e)
{
  //check the formview mode 
  if (FormView1.CurrentMode == FormViewMode.ReadOnly)
  {
    //Check the RowType to where the Control is placed
    if (FormView1.Row.RowType == DataControlRowType.DataRow)
    {
      Label label1 = (Label)UserProfileFormView.Row.Cells[0].FindControl("Label1");
      if (label1 != null)
      {
        label1.Text = "Your text";
      }
    }
  }
}
1 голос
/ 05 мая 2011

Я не вижу метки в вашей разметке, но вижу панель. Таким образом, чтобы получить доступ к панели,

Попробуйте

Panel p = FireFormView.FindControl("pnl") as Panel;
if(p != null)
{
    ...
}
0 голосов
/ 20 октября 2012
    if (FireFormView.Row != null)
    {
        if (FireFormView.CurrentMode == FormViewMode.ReadOnly)
        {
            Panel pnl = (Panel)FireFormView.FindControl("pnl");
        }
        else
        {
            //FormView is not in readonly mode
        }
    }
    else
    {
        //formview not databound, check select statement and parameters.
    }
...