更新面板和JavaScript

时间:2009-03-17 17:46:54

标签: asp.net asp.net-ajax updatepanel

我有一个用户控件,其结构是 -

<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 popndar中的数据可以放在Textbox1

感谢所有帮助。 谢谢

1 个答案:

答案 0 :(得分:0)

由于您使用的是UpdatePanel,因此您不需要任何javascript。

如果您将tr2元素更改为...

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

这将允许您在服务器端代码中控制它。要隐藏tr2行,只需执行...

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

这应该可以在回调中保持同步。