Обновление панели и JavaScript - PullRequest
2 голосов
/ 17 марта 2009

У меня есть пользовательский элемент управления, структура которого -

<updatepanel UpdateMode="Always">
<ContentTemplate>
   <asp:FormView>
    <EditItemTemplate>
       <table>
           <tr id='tr1'>
             <td>
                 Textbox1
                 btn1
             </td> 
           </tr> 
           <tr id='tr2'>
             <td>
                  textbox2
             </td> 
           </tr> 
        <table>
   </EditItemTemplate>
  </asp:FormView>
</ContentTemplate>
</updatepanel>

При загрузке страницы я использую следующее, чтобы скрыть tr2

ClientScriptManager cs = Page.ClientScript;
csText.AppendLine("");
csText.AppendLine("if(document.getElementById('tr2')!=null) 
           document.getElementById('tr2').style.display = 'none';");
csText.AppendLine("");
cs.RegisterStartupScript(this, this.GetType(), csName, csText.ToString(), false); 

Эта часть работает нормально. Теперь по щелчку btn1 я выскакиваю модальный всплывающий элемент управления расширением. Это заставляет tr2 показывать снова. Я знаю, что скрипт должен быть встроен в updatePanel. Я пытался использовать ScriptManager.RegisterStartupScript(....);, но не работает. Кроме того, updateMode должен быть всегда так, чтобы данные из pop extenar могли быть помещены в Textbox1

Вся помощь приветствуется. Спасибо

1 Ответ

0 голосов
/ 17 марта 2009

Поскольку вы используете UpdatePanel, вам на самом деле не нужен JavaScript для этого.

Если вы измените свой элемент tr2 на ...

<tr id="tr2" runat="server">

это позволит вам контролировать его в коде на стороне сервера. Чтобы скрыть строку tr2, просто сделайте ...

tr2.Style["display"] = "none";

это должно поддерживать синхронизацию с обратными вызовами.

...