2012-07-05 25 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