【问题标题】:Firing an asp:button through Javascript通过 Javascript 触发 asp:button
【发布时间】:2010-08-27 03:34:38
【问题描述】:

我有一个 asp:textbox 和一个 asp:button 来提交该文本框。然后我有 javascript 代码创建一个 div,其中包含一个 textarea 和一个 input[type=button]

我希望能够使用asp:button 事件提交这些创建的文本区域的文本。因此,当用户在div 创建的textarea 之一中输入文本并单击div input:button 时,我想将textarea 文本复制到asp:textbox,然后通过javascript 调用asp:button click 事件。我想以某种方式将div input:buttonid 传递给asp:textbox 的点击事件。

如何通过javascript将变量传递给asp:buttonOnClick事件?

我曾想过使用隐藏的asp:label 来存储id,但似乎应该有更好的方法。

【问题讨论】:

  • 你知道,一旦页面被渲染,就没有 asp:button 这样的东西了。那时它只是一个普通的旧

标签: javascript c# asp.net event-handling


【解决方案1】:

你可以试试这个:

<asp:ScriptManager ID="scm" runat="server" />
<div>
   <div id="clickme" style="width: 100px; height: 50px; background-color: #CCC"
        onclick="__doPostBack('ctl00$MainContent$Button1', '');" />
</div>
<input type="text" name="textbox" />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />


protected void Button1_Click(object sender, EventArgs e)
{
    string text = Page.Request.Params["textbox"];
}

注意按钮 ID 的硬编码名称。

__doPostBack 将触发回发并调用 Button1_Click 方法。

您不需要将文本复制到 asp:TextBox,因为您可以从 Page.Request.Params 获取输入字段的内容。

编辑:在页面中使用 javascript 时不要忘记嵌入 ScriptManager

【讨论】:

    【解决方案2】:

    为什么必须将数据复制到服务器端控件中?您始终可以在服务器端获取当前的 HttpRequest (HttpContext.Current.Request),您将拥有所有表单数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      • 2016-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多