C# 查找链接的ID
我已将链接动态添加到asp页面。单击后,我调用一个函数。我想找出调用函数的链接的id。我添加了google.com和yahoo.com来解释我的需求。我希望函数在我已经完成的原始场景中从db中提取数据C# 查找链接的ID,c#,html,asp.net,C#,Html,Asp.net,我已将链接动态添加到asp页面。单击后,我调用一个函数。我想找出调用函数的链接的id。我添加了google.com和yahoo.com来解释我的需求。我希望函数在我已经完成的原始场景中从db中提取数据 <a href="#" onServerClick="abc_Click" id="4"/>click</a> <a href="#" onServerClick="abc_Click" id="5"/>click here</a> 我提到过
<a href="#" onServerClick="abc_Click" id="4"/>click</a>
<a href="#" onServerClick="abc_Click" id="5"/>click here</a>
我提到过
现在我有两个问题
<a href="#" runat="server" onServerClick="abc_Click" id="4" />
您还必须正确实现事件处理程序,因为您的实现缺少参数将runat=“server”添加到html标记中,以使元素在服务器上可用。
否则它只是一个html元素,显然无法在服务器上访问这些元素
<a href="#" runat="server" onServerClick="abc_Click" id="4" />
您还必须正确实现事件处理程序,因为您的实现缺少参数您缺少引用这些服务器端链接的重要属性:
runat="server"
应该是这样的:
<a href="#" runat="server" onServerClick="abc_Click" id="4"/>click</a>
<a href="#" runat="server" onServerClick="abc_Click" id="5"/>click here</a>
在这种情况下,
sender
将是已单击的元素。您可以将其强制转换为该元素的类型,并从中获取所需的所有信息,包括其.Id
属性。您错过了在服务器端引用这些链接的一个重要属性:
runat="server"
应该是这样的:
<a href="#" runat="server" onServerClick="abc_Click" id="4"/>click</a>
<a href="#" runat="server" onServerClick="abc_Click" id="5"/>click here</a>
在这种情况下,
sender
将是已单击的元素。您可以将其强制转换为该元素的类型,并从中获取所需的所有信息,包括其.Id
属性。您缺少runat server属性。如果包含此项,则需要在表单中包含链接。但是你不能将链接的ID传递给服务器(除非你先用JS修改一个隐藏字段,然后发布这个隐藏字段)。然而,对于一个相当简单的问题来说,这是一个非常复杂的解决方案
最简单的方法是只添加一个querystring,然后在页面加载中执行db调用
例如:
<a href="/mypage.aspx?id=4" />click</a>
<a href="/mypage.aspx?id=5" />click here</a>
您缺少runat server属性。如果包含此项,则需要在表单中包含链接。但是你不能将链接的ID传递给服务器(除非你先用JS修改一个隐藏字段,然后发布这个隐藏字段)。然而,对于一个相当简单的问题来说,这是一个非常复杂的解决方案 最简单的方法是只添加一个querystring,然后在页面加载中执行db调用 例如:
<a href="/mypage.aspx?id=4" />click</a>
<a href="/mypage.aspx?id=5" />click here</a>
您必须添加
runat=“server”
。或者使用LinkButton
。很抱歉,我没有提到这一点。我添加了runat=“server”,但它仍然不起作用。您必须添加runat=“server”
。或者使用LinkButton
。很抱歉,我没有提到这一点。我添加了runat=“server”,但它仍然不工作。很抱歉,我没有提到。我添加了runat=“server”,但它仍然不工作。很抱歉,我没有提到。我添加了runat=“server”,但它仍然不起作用。@Srinivas:你能更具体一点吗?它以什么方式不起作用?客户端HTML是什么样子的?提示:如果runat=“server”
在客户端发出的HTML中可见,那么您不知何故错误地添加了这些链接。如何动态添加它们?函数未被调用。我的浏览器中的页面源代码视图显示runat=“server”。当我单击链接时,函数没有被调用。@Srinivas:那么,您添加的函数是错误的。它们将作为纯文本添加到输出中,而不是实际的服务器端控件。因此,不会调用该函数,因为您没有将其绑定到任何实际的服务器端控件。在这一点上,最简单的方法可能与Kenneth的答案类似。只要让链接是普通的HTML链接,它们调用当前页面并传递一些查询字符串值。然后在Page\u Load
中检查该值。我也有同样的感觉。肯尼思的回答应该有效。我仍然需要知道如何从调用onServerClick函数的c代码发布asp链接。只有通过您的回答,我才意识到它是以纯文本的形式添加到输出中的,而不是实际的服务器端controls@Srinivas:区别将完全在于如何动态添加此输出。如果您想动态添加控件,您可能应该在类似于Page_Init
(或更早?)的程序中添加控件,并将它们作为实际控件元素(添加到控件
集合中,可能在占位符
或其他内容中)以代码的形式而不是字符串的形式添加。@Srinivas:您能更具体一点吗?它以什么方式不起作用?客户端HTML是什么样子的?提示:如果runat=“server”
在客户端发出的HTML中可见,那么您不知何故错误地添加了这些链接。如何动态添加它们?函数未被调用。我的浏览器中的页面源代码视图显示runat=“server”。当我单击链接时,函数没有被调用。@Srinivas:那么,您添加的函数是错误的。它们将作为纯文本添加到输出中,而不是实际的服务器端控件。因此,不会调用该函数,因为您没有将其绑定到任何实际的服务器端控件。在这一点上,最简单的方法可能与Kenneth的答案类似。只要让链接是普通的HTML链接,它们调用当前页面并传递一些查询字符串值。然后在Page\u Load
中检查该值。我也有同样的感觉。肯尼思的回答应该有效。我仍然需要知道如何从调用onServerClick函数的c代码发布asp链接。只有通过您的回答,我才意识到它是以纯文本的形式添加到输出中的,而不是实际的服务器端controls@Srinivas:区别将完全在于你是如何充满活力的