ASP.NET C# 中的 JavaScript 回发和捕获事件
本文关键字:事件 NET 中的 JavaScript ASP | 更新日期: 2023-09-27 18:34:22
目前正在开发Web应用程序。需要一些有关如何在 asp.net/javascript 中声明事件以及这些事件如何适应代码隐藏(在本例中为 C#)的一般信息。
我自己的情况如下:我有一个 AccountsTreeView,需要用信息更新第二个 TreeView,具体取决于在 AccountsTreeView 中检查了哪些节点。由于 TreeNodeCheckChanged 事件不发布回调,因此(简单)解决方案是实现一个简单的脚本来提供回发。我只是不确定如何在代码隐藏中捕获回发/事件。
我找到的JavaScript代码,我会将其嵌入到我的.aspx文件中:http://forums.asp.net/p/1109288/1888180.aspx
<script language="javascript" type="text/javascript">
function postBackByObject()
{
var o = window.event.srcElement;
if (o.tagName == "INPUT" && o.type == "checkbox")
{
__doPostBack("","");
}
}
</script>
我希望的结果是这样的:
protected void TreeView_onCheckBoxChanged(Object sender, someEvent? e)
{
e.SelectedNode.Text = "able to access the selected node.";
}
任何帮助将不胜感激!请原谅我帖子中的任何错误行为,毕竟这是我的第一个。
输入HTML onclick='postBackByObject(this)'
或类似的东西来绑定到javascript事件。 下面是 DOM 事件的列表(您在代码中使用"属性"列下的单词)。
可以将数据从javascript传递到C#方法,但这里有一个简单的如何使用jQuery的例子(如果你不是,请告诉我)。 我更喜欢使用 on() 方法绑定,而不是将其硬编码到 HTML 中。
<script language="javascript" type="text/javascript">
$("#checkbox-id").on('click','postBackByObject');
function postBackByObject()
{
$.ajax({
url: ControllerName/TreeView_onCheckBoxChanged,
type: "POST",
data:{sender:window.event.srcElement}
});
}
</script>
on()
的好处是你可以将任何事件附加到它;它也非常动态且写得很好。
然后,只需将 [HttpPost]
属性放在 C# 方法上。 确保其名称正确。
我对为什么要在事件中传递 C# 方法有点困惑。 你想让它告诉你什么叫方法吗? 因为您需要将某个特定事件绑定到控件(在本例中为复选框)。 您肯定不想将所有事件绑定到相同的方法,是吗?