0

我需要我的 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" />
4

3 回答 3

2

对你的问题有点困惑。

. 如果按钮在同一页面中,那么您可以使用

 __doPostBack(buttonID,'');

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

已编辑

ASPX:默认.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 = "";
        }
    }
于 2013-10-21T21:09:44.730 回答
1

JQuery 允许您很容易地做到这一点。

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

    $('buttonIdHere').click();

那应该可以为您提供所需的东西。

于 2013-10-21T20:56:52.147 回答
0

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

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

刚刚注意到“JavaScript 文件从另一个页面单击一个 asp 按钮”。你是什​​么意思从另一个页面?你有page1.aspx 上面有javascript 并试图调用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>

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

于 2013-10-21T20:54:14.367 回答