2015-10-15 59 views
0

我想更改行數據綁定事件中的navigate url屬性。如果coloumn不鏈接綁定我想添加導航網址=#指定的參數超出了有效值範圍 - RowDataBound

<asp:TemplateField HeaderText="Reportd Link" ItemStyle-HorizontalAlign="center" > 
        <ItemTemplate> 
        <asp:HyperLink ID="Lbl_RptLnk1" runat="server" NavigateUrl='<%#Eval("ReportLinks")%>' 
          Text='Reported Link' Target="_blank" ToolTip='<%#Eval("ReportLinks")%>'></asp:HyperLink> 

       </ItemTemplate> 
        <ItemStyle HorizontalAlign="Left" /> 
       </asp:TemplateField> 

aspx.cs代碼

if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     HyperLink myLink = (HyperLink)e.Row.Cells[4].Controls[0];//slno,linkname,linkid,link 

     if (myLink.NavigateUrl == "Waiting for Approval") 
     { 
      myLink.NavigateUrl = "#"; 
     } 

    } 

得到錯誤saying-指定參數超出有效值的範圍。 參數名:指數

+0

如果要添加'RUNAT =「server」',使用asp.net按鈕控件 – Bharadwaj

+0

在使用asp按鈕時出錯...類型'System.Web.UI.WebControls.Button'沒有名爲'ItemStyle'的公共屬性。 –

+0

如果你想使用'Button',那麼它應該在''裏面,你可以將'ItemStyle'子應用到該字段,而不是'Button'(https://msdn.microsoft.com /en-us/library/bb288032.aspx) – Bharadwaj

回答

1

自從你控制RowDataBound事件是內部TemplateField一個ASP服務器控件,您可以使用該行的FindControl方法找到控制: -

HyperLink Lbl_RptLnk1 = (HyperLink)e.Row.FindControl("Lbl_RptLnk1"); 
if (Lbl_RptLnk1.NavigateUrl.Trim() == "Waiting for Approval") 
{ 
    Lbl_RptLnk1.NavigateUrl = "#"; 
} 
+1

感謝它一次嘗試... –

+0

是的,按鈕創建問題。所以我換成了超鏈接。 runat服務器和onclick一次不工作 –

相關問題