【问题标题】:asp.net setting onclick of input button dynamicallyasp.net动态设置onclick输入按钮
【发布时间】:2012-07-05 20:01:52
【问题描述】:

我有一些看起来像这样的动态按钮:

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

我需要能够从后面的代码中更改“somelink”。

这是怎么做到的? 我知道Request.Form["button"] 获得了按钮,但是如何设置 onlick 属性?

【问题讨论】:

  • &lt;input type='button'/&gt; 不会回发/提交。使用&lt;%= %&gt;&lt;%# %&gt; 表达式
  • 我不需要回发。因此为什么不使用

标签: c# asp.net button input


【解决方案1】:

添加 runat="server" 并且您可以从后面的代码访问该链接

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

如果你想改变 onclick 属性,那么你可以在后面的代码中这样做

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

【讨论】:

    【解决方案2】:

    应该在页面加载时更改按钮的点击处理程序,而不是在提交表单时。在您可以从 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]');");
    

    【讨论】:

    • cannot find 'button' 仅适用于 asp:button 类型。我需要它来输入 type=button
    • 已经尝试过 HtmlButton button = FindControl("button") as HtmlButton; button.Attributes.Add("onclick", "window.open('link')");它没有找到它。它是空的。是 runat=server
    • @user1468537,你让这变得比它需要的更复杂。分配 any html 控件和 ID 并指定 runat="server" 将允许您从 ID 的代码隐藏中访问它。
    • 是的,但 c# 无法识别上述上下文中的“按钮”变量
    【解决方案3】:

    你可以这样做:

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


    从后面的代码

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

    你可以添加任何你想要的东西来代替somelink
    就是这样。

    【讨论】:

    • 我不想回发。只需要一个可以打开带有动态链接的新窗口的按钮。如果可以关闭 asp:button 的回发(我认为不能),那么是的,我可以使用它。
    【解决方案4】:

    你为什么不把&lt;%=SomeUrl%&gt; 传递到window.open 里面像这样window.open(&lt;%=SomeUrl%&gt;)

    【讨论】:

    • 已经尝试过,但它似乎永远不会被分配。就像它只是空白一样,即使我可以看到变量值是正确的。
    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多