2014-10-01 71 views
0

我跑进了一堵墙,可以使用一些建议。我有一个gridview,每行包含一个“Details”超链接。当我处于编辑模式(内联)时,我想要禁用详细信息链接。我认为这很简单,但我似乎无法使其工作。我本以为(错误的),我可以这样做:如何从_RowEditing Sub访问gridview中的超链接控件?

Dim lnkDetails As HyperLink = CType(e.Row.FindControl("lnkDetails"), HyperLink) 
lnkDetails.Enabled = False 

这里的问题,因为我发现,是“电子作为GridViewEditEventArgs”我子的部分不包括“行”。

下面是相关代码:

Protected Sub gvCurRecords_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs) 
     ' Make the GridView control into edit mode for the selected row. 
     gvCurRecords.EditIndex = e.NewEditIndex 

     ' Rebind the GridView control to show data in edit mode. 
     BindGridView() 

     ' Hide the Add button. 
     lbtnAdd.Visible = False 
End Sub 

HTML(只有相关列):

<asp:GridView ID="gvCurRecords" CellPadding="4" DataSourceId="SqlDataSource1" 
     Autogeneratecolumns="false" AutoGenerateEditButton="true" 
     AutoGenerateDeleteButton="true" OnRowEditing="gvCurRecords_RowEditing" 
     OnRowCancelingEdit="gvCurRecords_RowCancelingEdit" 
     OnRowUpdating="gvCurRecords_RowUpdating" DataKeyNames="eventID" 
     OnRowDataBound="gvCurRecords_RowDataBound" 
     OnPageIndexChanging="gvCurRecords_PageIndexChanging" runat="server"> 
     <Columns> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:HyperLink ID="lnkDetails" runat="server" Text='Details'  NavigateUrl='<%#FormatUrl(CInt(Eval("EventID")))%>' /> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:Gridview> 

任何帮助将不胜感激。谢谢。

回答

1

使用编辑模板来定义,而不是超链接标签:

<EditItemTemplate> 
    <asp:Label ID="lbDetails" runat="server" Text='something else' /> 
</EditItemTemplate> 
+0

嗯......该死。是的,那会工作。 *脸掌* – Wilock 2014-10-01 19:37:32

+0

=)............. – OneFineDay 2014-10-01 19:39:18