我正在制作一个带有大量顶级链接列表的FYI页面。在这些顶级链接下,通常会有更多的链接发布到外部网站。目前,我处理填充第二层的方式是这样的:我查询我的数据库中的所有顶层链接,然后构造一个无序列表。每个列表项的格式为:如何在单击链接时填充隐藏字段?
<li class="multicolumnlistitem"><a href="linkpage.aspx?s={0}">Link Text</a></li>
其中,{0}是项目的ID。我想消除在URL中传递ID的需要。有人向我建议,我使用客户端脚本在点击某个链接时动态填充隐藏字段的值,然后阅读链接页面上的表单值。
任何想法/示例/资源将不胜感激。
谢谢!
更新
这里是我迄今下来了代码:
<form id="stateform" action="StateFyi/StateFyiView.aspx" method="post">
<p>
<input type="hidden" id="idfield" name="s" runat="server" />
<%
GSDataLayer.Fyi.States StateManager = new GSDataLayer.Fyi.States();
var stateList = StateManager.GetStateList();
foreach (GSDataLayer.Fyi.States.State s in stateList)
{
stateListOutput.Text +=
string.Format("<li class=\"multicolumnlistitem\"><a href=\"javascript:document.getElementById('{0}').value='{1}';document.stateform.submit();\">{2}</a></li>\n",
new string[] {idfield.ClientID, s.ID.ToString(), s.Name});
}
%>
<ul class="multicolumnlist">
<asp:Literal ID="stateListOutput" runat="server" Text="No Items!" />
</ul>
</p>
</form>
剩下的唯一障碍是JavaScript(或按上述格式,或原始document.getElementById('stateform')
)用于返回null表格。我无法将“runat = server”添加到此表单中,因为页面上已经有一个表单。此预先存在的表单是我用来正常运行的CMS所必需的。关于从哪里出发的任何想法?
谢谢!
不要这样做。否则,您的网站将无法使用JavaScript。 – 2009-07-21 15:52:22
好点。将考虑这一点。 – Anders 2009-07-21 17:31:29