2012-07-05 56 views
1

我看起來像這樣的一些動態按鈕:asp.net輸入按鈕的設置的onclick動態

<input type="button" name="button" id="button" value="Click me" 
    onclick="window.open('somelink');" /> 

我需要能夠從代碼中更改「somelink」後面。

這是怎麼做的? 我知道Request.Form["button"]獲取按鈕,但如何設置onlick屬性?

+0

''不會回發/提交。使用'<%= %>'或'<%# %>'表達式 – adatapost 2012-07-05 11:41:25

+0

我不需要回發。因此爲什麼不使用 user1468537 2012-07-05 11:44:13

回答

4

添加RUNAT =「服務器」,你可以訪問代碼的鏈接後面

<input runat="server" type="button" name="button" id="button" value="Click me" 
    onclick="window.open('somelink');" /> 

,如果你想改變的onclick屬性,那麼你這樣做在後面的代碼

button.Attributes.Add("onclick", "window.open('someOtherLink');") 
+0

這最終奏效了。謝謝 – user1468537 2012-07-05 12:57:44

+0

年歡迎的人。 – JohnnBlade 2012-07-06 05:39:12

0

你可以這樣做:

<asp:Button id="button" Text="Click me" OnClick="window.open('somelink');" /> 


從後面的代碼

button.Attributes.Add("onclick", "window.open('somelink');"); 

,你可以添加任何你在的地方somelink希望。
就是這樣。

+0

我不想回傳。只需要一個按鈕,將打開一個動態鏈接的新窗口。如果asp:button的回發可以切換(我不認爲它可以),那麼是的,我可以使用它。 – user1468537 2012-07-05 12:01:26

0

你爲什麼不通過<%=SomeUrl%>window.open這樣window.open(<%=SomeUrl%>)

+0

已經嘗試過,但它似乎永遠不會被分配。就像在它的空白處,儘管我可以看到變量值是正確的。 – user1468537 2012-07-05 11:53:45

1

更改按鈕上單擊處理頁面加載,而不是當表單提交時應該做的。在您從C#訪問您的按鈕之前,您需要添加runat="server"。在此之後,可以訪問其屬性:

HTML

<input runat="server" type="button" name="button" id="button" value="Click me" 
    onclick="window.open('somelink');" /> 

C#

button.Attributes.Add("onclick", "window.open('[DynamicValueHere]');"); 
+0

找不到'按鈕'只適用於asp:按鈕類型。我需要輸入類型=按鈕 – user1468537 2012-07-05 11:53:00

+0

@ user1468537,您是否將'runat =「server」'添加到您的標記中? – 2012-07-05 11:54:07

+0

已經嘗試HtmlButton按鈕= FindControl(「按鈕」)作爲HtmlButton; button.Attributes.Add(「onclick」,「window.open('link')」);並沒有找到它。它是空的。是runat =服務器 – user1468537 2012-07-05 11:55:58