从javascript方法调用codebehind函数

时间:2015-12-04 16:28:04

标签: javascript c# asp.net

我试图用javascript调用codebehind函数。我需要使用gridview进行一些操作。 这是我的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()'错误消失但方法不起作用,因为它不是静态的。

2 个答案:

答案 0 :(得分:1)

似乎你正在混合两个不同的概念。 JavaScript从浏览器运行,无法访问您的服务器代码。你在这里做的是试图在你的页面被渲染到浏览器时调用WebMethod。

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

答案 1 :(得分:0)

这就是你如何从后面的代码中调用你的JavaScript函数hideColumn()。

将此项放在要调用javascript函数的方法中。

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

要从javascript函数调用代码隐藏,你必须玩一些技巧。

1。)创建一个隐藏的按钮控件。你必须在CssClass中隐藏它

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



 .hidden {
     display: none;
 }

2。)在您的代码中创建一个单击hdnButton方法

3。)从您的javascript中调用隐藏按钮点击事件

             function CallCodeBehind() {

                document.getElementById('<%= hdnButton.ClientID%>').click();

                }