从javascript方法调用codeehind函数

Call a codebehind function from a javascript method

本文关键字:codeehind 函数 调用 方法 javascript      更新时间:2023-09-26

我正在尝试用javascript调用一个codeehind函数。我需要对我的网格视图进行一些操作。这是我的javascript:

function hideColumn() {
 var gridrows = $("#GridViewHdcvi tbody tr");
 AddTeklif.RemoveTextBoxes();
 for (var i = 0; i < gridrows.length; i++) {
   gridrows[i].cells[5].style.display = "none";
      }
     return false;
      };

还有我的代码头:

[WebMethod]
    public static void RemoveTextBoxes()
    {
        foreach (GridViewRow row in GridViewHdcvi.Rows)
        {
          TextBox txb = (TextBox)row.FindControl("txtAdet");
          string adet = txb.Text;
          txb.Visible = false;
          Label lbl = (Label)row.FindControl("LblAdet");
          lbl.Text = adet+" $";
        }
    }

"GridViewHdcvi.Rows"中的"非静态字段、方法或属性CRM.AddTeklif.GridViewHdcvi需要对象引用"之类的错误。当我使方法的名称为"public void RemoveTextBoxes()"时,错误消失,但方法不起作用,因为它不是静态的。

您似乎混合了两个不同的概念。JavaScript是从浏览器运行的,不会访问您的服务器代码。您在这里所做的是,当您的页面被渲染以发送到浏览器时,尝试调用WebMethod。

更好的方法是将RemoveTextBoxes方法转换为jQuery,因为您想要做的是修改DOM。

这就是从代码背后调用JavaScript函数hideColumn()的方法。

将其放入要调用javascript函数的方法中。

Page.ClientScript.RegisterStartupScript(this.GetType(), "hideColumn", "hideColumn(;", true);

要从javascript函数调用codeehind,您必须玩一些技巧。

1.)创建一个隐藏的按钮控件。您必须将其隐藏在CssClass 中

 <asp:Button ID="hdnButton" runat="server"  CssClass="hidden" />

 .hidden {
     display: none;
 }

2.)在后面的代码中创建一个click-hdnButton方法

3.)从javascript 调用隐藏按钮点击事件

             function CallCodeBehind() {
                document.getElementById('<%= hdnButton.ClientID%>').click();
                }