Скрытие ItemTemplate в виде сетки - PullRequest
1 голос
/ 13 мая 2011

У меня есть этот код на странице .aspx

<gridview .....
  <columns>
 ............ 
 ...........
<asp:templatefield Visible="true" headertext="Title" >
<edititemtemplate>
        <asp:checkbox id="chkTitle" runat="server" />
</edititemtemplate>
</asp:templatefield>

<asp:commandfield buttontype="Link" edittext="Edit" showeditbutton="true"/>
 </columns>
 </gridview>

Я хочу показывать столбец только тогда, когда пользователь нажимает кнопку «Редактировать» для редактирования строки.

Ответы [ 2 ]

1 голос
/ 13 мая 2011

Код, такой как GridView.Columns[9].Visible = false;, должен работать - единственное, что привязка данных сетки должна произойти после этой строки. Если вы полагаетесь на состояние просмотра для связывания сетки в сценариях постбэк, то вы можете попробовать поставить GridView.DataBind() после установки видимости столбца.

Еще один более сложный способ - установить видимость на уровне ячеек в событии RowDataBound - см. эту статью , в которой используется эта техника.

1 голос
/ 13 мая 2011

В вашем обработчике событий привязки данных GV (не привязан к данным строк):

For i As Integer = 0 To GridView1.Rows.Count - 1
     If GridView1.EditIndex = -1 Then
         GridView1.Rows(i).Cells(0).Visible = False
     else
         GridView1.Rows(i).Cells(0).Visible = true
     end if
Next

If GridView1.EditIndex = -1 Then
    GridView1.HeaderRow.Cells(0).Visible = False
End If

Источник

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