繁体   English   中英

使用Java单击按钮

[英]Click a button using Javascript

我需要我的JavaScript文件才能从另一页单击asp按钮,这是代码:

if (something..) {
            document.getElementById('<%=Button1(how to write it?).ClientID %>').click();
        }

Button1在default.aspx文件中,而JavaScipt在Click.aspx文件中-javascript在default.aspx页面中不在我该怎么做?

这是我的asp按钮:

  <asp:Button ID="Button1" runat="server" Text="Button" />

有点困惑你的问题。

如果按钮在同一页面上,则可以使用

 __doPostBack(buttonID,'');

如果按钮在其他页面中并且未加载该页面。 我认为您不能直接进行回发。 可能是您可以将参数作为查询字符串传递,然后在服务器端读取查询字符串,然后如果该值存在,则触发按钮单击事件。

已编辑

ASPX:default.aspx

    <script>
        var button1 = "<%= Button1.ClientID %>";
        var something = true;
    </script>
    <h3>We suggest the following:</h3>

   <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="return false;" OnClick="Button1_Click" />


    <script src="Scripts/test.js"></script>

JavaScript:test.js

var element = document.getElementById(button1);

if (element != null) {

    element.onclick = function () {
        if (!something) return false;
        return true;
    };
}

C#

 public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string a;
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            var clicked = "";
        }
    }

jQuery使您可以轻松地做到这一点。

如果将JQuery导入项目,然后执行以下操作:

    $('buttonIdHere').click();

那应该给您您所需要的。

假设您按钮的ID为Button1,并且您想引起回发,请在javascript中使用它:

eval('<%= Page.ClientScript.GetPostBackEventReference(Button1, String.Empty) %>')

刚刚注意到“ JavaScript文件可以从另一个页面单击asp按钮”。 您从另一页说什么? 您有带有JavaScript的page1.aspx,并试图调用page2.aspx的button1吗?

如果是这样,您将无法执行,因为没有加载Page2。 改用WebMethod:

1)在Page2中创建一个公共静态方法,执行Button1.Click回调的所有操作。

2)仅将对Button1_Click的调用替换为该静态方法。

3)然后从您的Page1上的javascript可以调用PageMethods.YourMethodName

有效执行与Button1_Click相同的例程

编辑:

最终结果的外观示例:

Page2.aspx.cs

protected void Button1_Click(object sender, EventArgs e)
{
    MyWebMethod();
}

[WebMethod]
public static void MyWebMethod ()
{
    //... Do something useful
}

Page1.aspx

<script>
    function callMyWebMethod(){
        PageMethods.MyWebMethod(function(){ // success callback}, function(){ // error callback});
    }
</script>

为了使页面方法起作用,您需要页面上的ScriptManager的EnablePageMethods = True。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM