您可以定义一个函数,在单击C#代码中定义的超链接时更改C#属性吗
本文关键字:定义 代码 超链接 属性 单击 函数 一个 | 更新日期: 2023-09-27 18:29:44
我知道用javascript定义的超链接是不可能做到这一点的,但我不确定C#上定义的超级链接是否以同样的方式工作。
我的意思是我有这个代码:
HyperLink hlk;
...
hlk.NavigateUrl = url
我知道我可以定义这样的东西:
hlk.Attributes.Add("onclick", "return somefunction()");
但据我所知,这样的东西只适用于客户端代码,我希望它能从服务器端更改一些内容。
有什么办法可以对我提到的事情做这样的事情吗?由于超链接是从C#而不是javascript生成的,因此可能有一种方法。。。
您想为点击事件添加一个事件处理程序吗?
在C#中,您需要执行
Hyperlink hl;
// ... (setting of hyperlink)
hl.Click += HandlerFunction; // HandlerFunction is your method
点击事件所需的参数为object sender, RoutedEventArgs e
您的服务器运行C#并与浏览器通信,对吗?您在服务器端创建的任何内容最终都将被发送到客户端的浏览器(html+javascript)。超链接是如何创建的(C#、Java、PHP)并不重要,因为它被转换为html,然后从服务器发送出去。
您应该使用AJAX向服务器发送命令。
例如:
hlk.Attributes.Add("onclick", "doSomeAjax(url, command)");
客户端的doSomeAjax
函数可以是这样的(我使用了jQuery):
function doSomeAjax(url, command) {
$.ajax({
type: "post",
url: url,
data: command
});
}
url应该指向您将在指定用于获取命令的服务器上创建的地址。该命令可以是您想要的任何内容,例如myVar=true
,然后在服务器端只需查找myVar变量并将其更改为true。
这个例子当然很容易受到多种攻击!