написать код прямо на странице aspx в gridview для доступа к свойствам на стороне сервера - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть вид сетки, который содержит несколько столбцов шаблона. В первом столбце шаблона у меня есть LinkButton (видимый по умолчанию) и метка (скрытый по умолчанию).

Я установил свойство (IsPopup) на стороне сервера (файл aspx.cs)

Теперь я должен показать LinkButton и скрыть метку, если IsPopup имеет значение true, и наоборот.

Ниже приведен пример кода

код aspx.cs

public bool IsPopup
{
  get;
  set;
}

код aspx

 <asp:GridView ID="gvEquipment" runat="server" AutoGenerateColumns="False" >

   <Columns>
     <asp:TemplateField HeaderText="ID" meta:resourcekey="TemplateFieldResource2">
       <ItemTemplate>
         <asp:Label ID="lblCheckPointCode" runat="server" meta:resourcekey="lblCheckPointCodeResource1"
           Text='<%# Bind("CheckPointCode") %>' Visible="False"></asp:Label>
         <asp:LinkButton ID="lbtnCheckPointCode" runat="server" CausesValidation="False" CommandName="Edit"
           meta:resourcekey="lbtnCheckPointCodeResource1" Text='<%# Bind("CheckPointCode") %>'></asp:LinkButton>
       </ItemTemplate>
       <ItemStyle Width="25%" />
     </asp:TemplateField>

   </Columns>

 </asp:GridView>

В приведенном выше коде вы можете видеть, что Метка видна ложно по умолчанию.

Когда я пытался реализовать Visible = '<# IsPopup' </p>

появляется следующая ошибка: Сообщение об ошибке синтаксического анализатора: невозможно создать объект типа «System.Boolean» из его строкового представления «<# IsPopup» для свойства «Visible». </p>

Ответы [ 2 ]

1 голос
/ 06 декабря 2011

Попробуйте это:

    <asp:Label ID="lblCheckPointCode" runat="server" meta:resourcekey="lblCheckPointCodeResource1"
       Text='<%# Bind("CheckPointCode") %>' Visible='<%# IsPopup '></asp:Label>
     <asp:LinkButton ID="lbtnCheckPointCode" runat="server" CausesValidation="False" CommandName="Edit"
       meta:resourcekey="lbtnCheckPointCodeResource1" Text='<%# Bind("CheckPointCode") %>' Visible='<%# !IsPopup '></asp:LinkButton>

[Изменить] другой подход, вы можете обработать событие RowCreated:

void ProductsGridView_RowCreated(Object sender, GridViewRowEventArgs e)
{    
    var lbl = e.Row.FindControl("lblCheckPointCode");
    if(lbl != null) lbl.Visible = !IsPopup;

    var lnk= e.Row.FindControl("lbtnCheckPointCode");
    if(lnk!= null) lbl.Visible = !IsPopup;



}
0 голосов
/ 06 декабря 2011

Используйте Visible='<%# Bind("IsPopup ") %>' для установки видимого истинного или ложного контроля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...