2009-07-21 5 views
1

Я работаю над страницей 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, которую я использую для правильной работы. Любые идеи о том, куда идти отсюда?

Спасибо!

+1

Не делайте этого. В противном случае ваш сайт будет бесполезен при отключенном Javascript. –

+0

Хорошая точка. Подумаем об этом. – Anders

ответ

2

ли вы имеете в виду что-то вроде:

<form id="myform" action="linkpage.aspx" method="POST"> 
<input type="hidden" id="idfield" name="s" /> 
</form> 
... 
<li class="multicolumnlistitem"><a href="javascript:document.getElementById('idfield').value='0';document.getElementById('myform').submit();">Link Text</a></li> 
+0

Что-то вроде этого, да. Тем не менее, он еще не отправляется. Мне нужно будет увидеть, могу ли я понять, почему нет, а затем я отправлю обратно. – Anders

+0

FireBug говорит: "document.getElementById (" idfield ") имеет значение null" – Anders

+0

И в соответствии с исходным представлением: , Должен ли я вмещать дополнительный текст ASP в поле id? – Anders

 Смежные вопросы

  • Нет связанных вопросов^_^