我正在製作一個帶有大量頂級鏈接列表的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