Я работаю над страницей FYI, которая имеет большой список ссылок верхнего уровня. Под этими каналами верхнего уровня есть больше ссылок, которые обычно выходят на внешние веб-сайты. В настоящее время способ заполнения второго уровня таков: я запрашиваю мою базу данных для всех ссылок верхнего уровня, а затем создаю неупорядоченный список. Каждый элемент списка имеет формат:Как я могу заполнить скрытое поле при нажатии ссылки?
<li class="multicolumnlistitem"><a href="linkpage.aspx?s={0}">Link Text</a></li>
Где {0} - идентификатор элемента. Я хотел бы исключить необходимость передачи идентификатора в URL-адресе. Мне было предложено использовать сценарии на стороне клиента для динамического заполнения скрытого поля со значением, когда одна из ссылок будет нажата, а затем прочитайте значение формы на странице ссылок.
Любые идеи/примеры/ресурсы будут высоко оценены.
Спасибо!
Update
Вот код, который я получил вниз до сих пор:
<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')
) возвращает нуль для форма. Я не могу добавить «runat = server» в эту форму, так как на этой странице уже есть форма. Эта существующая форма требуется CMS, которую я использую для правильной работы. Любые идеи о том, куда идти отсюда?
Спасибо!
Не делайте этого. В противном случае ваш сайт будет бесполезен при отключенном Javascript. –
Хорошая точка. Подумаем об этом. – Anders