Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Jquery调用带参数的c#方法?ASP.NET2.0_C#_Jquery_Asp.net_Jquery Ui - Fatal编程技术网

如何从Jquery调用带参数的c#方法?ASP.NET2.0

如何从Jquery调用带参数的c#方法?ASP.NET2.0,c#,jquery,asp.net,jquery-ui,C#,Jquery,Asp.net,Jquery Ui,我在default.aspx页面中显示模式弹出窗口,以便: <a id="popup" href="../Popup/Keywords.aspx">edit</a> GRDReportKeywords刷新方法: protected void grdReportKeywordsRefresh(int report_id) { grdKeywords.DataSource = conn.GetKeywordsByRepId(report_id); grdKe

我在default.aspx页面中显示模式弹出窗口,以便:

<a id="popup" href="../Popup/Keywords.aspx">edit</a>
GRDReportKeywords刷新方法:

protected void grdReportKeywordsRefresh(int report_id)
{
    grdKeywords.DataSource = conn.GetKeywordsByRepId(report_id);
    grdKeywords.DataBind();
}

您正在混合客户端和服务器代码

您还将另一个页面全部加载到弹出窗口中,因此它没有显示default.aspx中的任何内容也就不足为奇了

您可以在关闭弹出窗口时在隐藏字段中设置值,然后强制回发&在服务器上,检查是否设置了隐藏字段值,如果设置了,则调用函数


Simon

您正在混合客户端和服务器代码

您还将另一个页面全部加载到弹出窗口中,因此它没有显示default.aspx中的任何内容也就不足为奇了

您可以在关闭弹出窗口时在隐藏字段中设置值,然后强制回发&在服务器上,检查是否设置了隐藏字段值,如果设置了,则调用函数


Simon

报告id在哪里定义?不能使用javascript中设置的变量,因为服务器端代码()在服务器呈现页面时执行。

报告id在哪里定义?您不能使用javascript中设置的变量,因为服务器端代码()在服务器呈现页面时执行。

人们是对的,您在混合内容:)

应该是这样的:

<script type="text/javascript">
this is what you call:
  __doPostBack('updateMyGrid', '')
</script>
c#(就在我头上)


人们是对的,你在混合东西:)

应该是这样的:

<script type="text/javascript">
this is what you call:
  __doPostBack('updateMyGrid', '')
</script>
c#(就在我头上)



此函数在您呈现页面时调用。这是你想要的吗?你能发布grdReportKeywordsRefresh方法吗,或者至少描述一下它应该做什么?__doPostBack的第一个参数应该是要运行的操作的控件ID。这可以是例如按钮等。或者,您可以只添加一些字符串,并在页面生命周期(即在页面加载中)检查此值(page.Request(“\uu EVENTTARGET”))并基于此运行代码。这有帮助吗?@Ales:这个方法刷新GridView(我把它添加到问题中)。你能给我举一个你的替代方案的例子吗?@Ales:不,我不是。我的VS2005没有AJAX扩展:(我已根据此函数更改了答案。在您呈现页面时,此函数调用此函数。这是您想要的吗?您可以发布grdReportKeywordsRefresh方法,或者至少描述它应该执行的操作吗?u doPostBack的第一个参数应该是您想要运行的操作的控件ID。这可以是例如按钮等。或者你只需添加一些字符串,然后在页面生命周期(即在页面加载中)检查此值(page.Request(“\uu EVENTTARGET”))并基于此运行代码。这有帮助吗?@Ales:此方法刷新GridView(我将其添加到问题中)。你能给我看一个你的替代解决方案的例子吗?@Ales:不,我没有。我的VS2005没有AJAX扩展:(我已经根据报告更改了我的答案,报告id是page的类属性我可以看到它是如何声明的吗?我将其添加到问题报告的末尾了报告id是page的类属性我可以看到它是如何声明的吗?我将其添加到问题的末尾了。感谢您的帮助,在他们的示例中似乎使用了c,但是page.Request.Params.Get(“\u EVENTTARGET”)(可能只在c#)中。你能说说为什么.aspx页面没有显示在弹出窗口中吗?是否有javascript错误?我会尝试使用一些html检查器(例如chrome检查器或FireBug)为了找到原因是的,我犯了一个愚蠢的错误,再次感谢你的帮助!op在他们的示例中似乎使用了c#,谢谢你的帮助,但是Page.Request.Params.Get(“u EVENTTARGET”)(可能只在c#)中。你能说一下为什么.aspx页面没有显示在弹出窗口中吗?是否有javascript错误?我会尝试使用一些html检查器(即chrome inspector或FireBug)寻找原因是的,我犯了一个愚蠢的错误,再次感谢您的帮助!
<script type="text/javascript">
this is what you call:
  __doPostBack('updateMyGrid', '')
</script>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  If Page.IsPostBack AndAlso Page.Request("__EVENTTARGET") = "updateMyGrid" Then
    'rebind your grid here
  End If
End Sub
protected void Page_Load(object sender, EventArgs e) {
  if(IsPostBack && Page.Request["__EVENTTARGET"] == "updateMyGrid") {
    //rebind here
  }
}