求助,如何通过外部JS调用CS函数

leisang 2010-06-18 02:30:37
我有一个页面大概结构是这样的,
<asp:updatepanel id="UpdatePanel1" runat="server">
<contenttemplate>
<asp:dropdownlist id="DropDownList1" runat="server"/>
...
其他控件
...
</contenttemplate>
</asp:updatepanel>


.CS有个刷新DropDownList1函数:
[System.Web.Services.WebMethod]
public static void LoadLabel(string defaultvalue)
{
DropDownList1.Items.Clear();
...
DropDownList1.DataSource = data;
DropDownList1.DataBind();
}

---------------------------------------------

现在我想用外部JS来调用LoadLabel函数,以实现刷新DropDownList1的目的。

当函数设置为静态时提示:CS0120: 非静态的字段、方法或属性“DropDownList1”要求对象引用,
就是:DropDownList1.Items.Clear(); 这行出错,
可是如果该函数不设置成静态,则JS报错,消息: 'PageMethods' 未定义

请教各位大大该如何解决?

...全文
75 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
还想懒够 2010-06-18
  • 打赏
  • 举报
回复
public void LoadLabel(string defaultvalue)
{
DropDownList1.Items.Clear();
...
DropDownList1.DataSource = data;
DropDownList1.DataBind();
}

再在UpdatePanel里面放一个按钮,注册服务端事件,调用LoadLabel,按钮display:none

在javascript里面执行这个按钮的.click()即可
gongsun 2010-06-18
  • 打赏
  • 举报
回复
注册组件,类似ocx控件。
leisang 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tianshikuqi8 的回复:]
引用Ajax.pro2.dll将 LoadLabel()声明为[AjaxMethod]之后可以在js中调用
[/Quote]

有没有其他办法呢,我用的就只有asp.net ajax1.0。
辰爸 2010-06-18
  • 打赏
  • 举报
回复
引用Ajax.pro2.dll将 LoadLabel()声明为[AjaxMethod]之后可以在js中调用
leisang 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yisuku_lee 的回复:]
<%LoadLabel()%>
[/Quote]

不行的,就算我写成这样:
function AjaxLoad()
{
var tmp='<%=LoadLabel("") %>';
alert(tmp);
}
对于UpdatePanel里的数据也是毫无刷新。
YISUKU_LEE 2010-06-18
  • 打赏
  • 举报
回复
<%LoadLabel()%>

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧