2014-10-07 102 views
1

我有一箇中繼器,它內部有一個鏈接按鈕。我想在鏈接的按鈕單擊事件中獲取一些數據。我應該如何設置額外的數據並在點擊事件中獲取它們? (考慮,我想在Concat的我的財產部分項目)在ASP.NET中設置LinkBut​​ton的額外屬性

ASPX代碼:

<asp:Repeater ID="rpSliderRest" runat="server"> 
    <ItemTemplate> 
     <!-- ITEM--> 
     <div class="span2"> 
      <div class="thumbnail product-item"> 
       <img src='<%# Eval("PrintTemplate_URL").ToString().Replace("~", "../..") %>'> 
      </div> 
      <h6><%# Eval("PrintTemplate_Desc") %></h6> 
      <asp:LinkButton ID="lbtn1" runat="server" class="btn btn-large btn-block" OnClick="LinkButton1_Click" 
       Prperty='<%# string.Format("{0};{1}",Eval("PrintTemplate_URL").ToString(),Eval("PrintTemplate_ID").ToString()) %>'>Select »</asp:LinkButton> 
     </div> 
     <!-- ITEM--> 
    </ItemTemplate> 
</asp:Repeater> 

aspx.cs代碼:

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    LinkButton lbtn = sender as LinkButton; 
    string MyProperty=?????????? 
} 

回答

1

可以使用Attributes集合。

例如:

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    LinkButton lbtn = sender as LinkButton; 
    String MyProperty = lbtn.Attributes["Prperty"]; 
} 
+0

感謝您的快速回復,它返回null!它甚至不會在渲染頁面後將我的屬性添加到鏈接按鈕(我在運行項目後看到它在火蟲中) – 2014-10-07 08:01:50

+0

鏈接的按鈕在運行後創建下面的代碼:'انتخاب »' – 2014-10-07 08:03:51

+0

這很奇怪。我在一個簡單的演示中測試了它,它工作正常,服務器端代碼和標記都包含自定義屬性。一個想法是,屬性值包含破壞HTML的字符,FireBug無法看到該屬性。而不是使用FireBug直接查看源代碼,並檢查該屬性是否存在。 – 2014-10-07 08:11:00

0

個人而言,我會下去使用鏈接按鈕CommandArgument屬性的路線 - 因爲這就是它的存在了。

所以:

 <asp:LinkButton ID="lbtn1" runat="server" class="btn btn-large btn-block" OnClick="LinkButton1_Click" 
      CommandArgument='<%# string.Format("{0};{1}",Eval("PrintTemplate_URL").ToString(),Eval("PrintTemplate_ID").ToString()) %>'>Select »</asp:LinkButton> 

然後

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    LinkButton lbtn = sender as LinkButton; 
    string MyProperty= lbtn.CommandArgument; 
} 
相關問題