updatepanel局部刷新出现问题

时间:2021-02-28 20:18:47
这是一个用户信息的注册页面,我想实现选择性别是只刷新下拉列表控件,点重置按钮(所有信息重置)则刷新该注册信息部分,而不是整个页面。我用了两个updatepanel.
下拉列表的局部刷新能实现,但是注册信息部分刷新却出现问题,代码如下:

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form id="main" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="true" EnableScriptLocalization="true"  EnablePartialRendering="true">
</asp:ScriptManager>
<...
...>
<table width="950" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
  <tr>
    <td width="5" valign="top"></td>
    <td width="674" valign="top"><table width="713" border="0" cellspacing="0" cellpadding="0" class="bull">
      <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
      <ContentTemplate>
      <tr>
        <td height="34" colspan="2">&nbsp;&nbsp;当前位置:</td>
      </tr>
      <tr>
        <td height="30" colspan="2" align="center" bgcolor="#FCF5E3"><strong>修改信息</strong></td>
      </tr>
      <tr>
        <td width="16%" height="30" align="right"><strong>用户名:</strong></td>
        <td width="84%">&nbsp;<asp:TextBox ID="txtacc" runat="server" Width="186px" Height="20px"></asp:TextBox>(必填)<asp:RequiredFieldValidator
            ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtacc" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator></td>
      </tr>
      <tr>
        <td height="30" align="right"><strong>密&nbsp;&nbsp;码:</strong></td>
        <td height="30">&nbsp;<asp:TextBox ID="txtpsd" runat="server" Height="20px" Width="186px"></asp:TextBox>(必填)<asp:RequiredFieldValidator
            ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtpsd" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator></td>
      </tr>
      <tr>
        <td height="30" colspan="2" align="center" bgcolor="#FCF5E3"><strong>用户信息</strong></td>
      </tr>
      <tr>
        <td align="right" style="height: 30px"><strong>真实姓名:</strong></td>
        <td style="height: 30px">&nbsp;<asp:TextBox ID="txtrealname" runat="server" Height="20px" Width="186px"></asp:TextBox></td>
      </tr>
      <tr>
        <td align="right" style="height: 30px"><strong>性&nbsp;&nbsp;别:</strong></td>
        <td style="height: 30px"><asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
        <ContentTemplate>   
            <asp:DropDownList ID="ddlsex" runat="server" Height="26px" Width="193px" AutoPostBack="True" DataSourceID="sexds" DataTextField="s_name" DataValueField="s_id">
                </asp:DropDownList>
        </ContentTemplate>
        </asp:UpdatePanel>
            <asp:SqlDataSource ID="sexds" runat="server" ConnectionString="<%$ ConnectionStrings:ershouConnectionString %>"
            SelectCommand="SELECT [s_id], [s_name] FROM [t_sex]"></asp:SqlDataSource>
        </td>
      </tr>
      <tr>
        <td height="30" align="right"><strong>出生年月:</strong></td>
        <td height="30">&nbsp;<asp:TextBox id="txtbirth" runat="server" Height="20px" Width="186px" onblur="CheckDate(this);"></asp:TextBox>
            <ajaxToolkit:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="txtbirth" Format="yyyy-MM-dd" OnClientShown="calendarShown">
            </ajaxToolkit:CalendarExtender>
            &nbsp;
        </td>
      </tr>
      <tr>
        <td height="30" align="right"><strong>身份证号码:</strong></td>
        <td height="30">&nbsp;<asp:TextBox ID="txtcard" runat="server" Height="20px" Width="186px"></asp:TextBox>
            <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="txtcard"
                ErrorMessage="RegularExpressionValidator" ValidationExpression="\d{17}[\d|X]|\d{15}"></asp:RegularExpressionValidator></td>
      </tr>
      <tr>
        <td height="30" align="right"><strong>固定电话:</strong></td>
        <td height="30">&nbsp;<asp:TextBox ID="txtcall" runat="server" Height="20px" Width="186px"></asp:TextBox></td>
      </tr>
      <tr>
        <td height="30" align="right"><strong>手机:</strong></td>
        <td height="30">&nbsp;<asp:TextBox ID="txtmobile" runat="server" Height="20px" Width="186px"></asp:TextBox></td>
      </tr>
      <tr>
        <td height="30" align="right"><strong>QQ:</strong></td>
        <td height="30">&nbsp;<asp:TextBox ID="txtqq" runat="server" Height="20px" Width="186px"></asp:TextBox></td>
      </tr>
      <tr>
        <td height="30" align="right"><strong>电子邮箱:</strong></td>
        <td height="30">&nbsp;<asp:TextBox ID="txtemail" runat="server" Height="20px" Width="186px"></asp:TextBox>
            <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="txtemail"
                ErrorMessage="RegularExpressionValidator"></asp:RegularExpressionValidator></td>
      </tr>
      <tr>
        <td height="30" align="right"><strong>联系地址:</strong></td>
        <td height="30">&nbsp;<asp:TextBox ID="txtaddress" runat="server" Height="20px" Width="186px"></asp:TextBox></td>
      </tr>
      <tr>
        <td height="40" colspan="2" align="center"><asp:Button runat="server" id="btnsub" text="提 交" style="border: 1px solid #808080; background-color: #F6F6F6; color: #4B4B4B" />
&nbsp;&nbsp;&nbsp;&nbsp;
          <asp:Button runat="server" id="btnreset"  text="重 置" style="border: 1px solid #808080; background-color: #F6F6F6; color: #4B4B4B" CausesValidation="False" OnClick="btnreset_Click" /></td>
      </tr>
      </table>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger  ControlID="btnreset" EventName="click"/>
    </Triggers> 
    </asp:UpdatePanel> 
    </td>
  </tr>
</table>
<table width="950" height="5" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td bgcolor="#FFFFFF"></td>
  </tr>
</table>
<table width="950" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><img src="images/index_19.jpg" width="950" height="141" /></td>
  </tr>
</table>
</form>
</body>

29 个解决方案

#1


出现 什么问题、、?
  

#2


楼主,错误提示呢!贴出来才好帮你看看问题出在哪里!!!

#3


来帮顶!@!!!!!!!!

#4


ID="UpdatePanel1" runat="server" UpdateMode="Conditional"

把UpdateMode="Conditional"去掉试试

#5


点重置前:
updatepanel局部刷新出现问题

点重置后:
updatepanel局部刷新出现问题

#6


错误提示:

网页错误详细信息

用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322; CIBA)
时间戳: Fri, 23 Apr 2010 02:58:34 UTC


消息: Sys.InvalidOperationException: Two components with the same id 'CalendarExtender1' can't be added to the application.
行: 3654
字符: 59
代码: 0
URI: http://localhost:5002/hdershou/ScriptResource.axd?d=4dUdhknppdo1n354TGN32sd_BOH0LlPdtr7LCsqUbGP4GI8QJR5nbgbGvvpUEOIMWORXJOL9UD_dy0ZDybheBFP-CFjMGwIrVesodE5Dwgc1&t=633961487579687500

#7


帮助解决的话,另外送分!!!!!

帮助解决的话,另外送分!!!!!

#8


是不是 页面 全部刷新了???

#9


引用 8 楼 wosizy 的回复:
是不是 页面 全部刷新了???

http://topic.csdn.net/u/20090611/11/73fda8b4-9553-49a4-9b64-0d972812efb9.html

#10


Two components with the same id 'CalendarExtender1' can't be added to the application.

id 一样了 

#11


重置按钮用个
<input type="reset" id="BtnReset" value="重置" />

#12


Two components with the same id 'CalendarExtender1' can't be added to the application.

id 一样了 

#13


用多个updatepanel

#14


updatepanel 可以嵌套使用吗? 以前没试过

#15


引用 10 楼 sandy945 的回复:
Two components with the same id 'CalendarExtender1' can't be added to the application.

id 一样了


我只用了这一个CalendarExtender,应该不会一样才对;

我去掉最外层的那个updatepanel之后,就没错了

但是怎么才能实现只有注册信息部分的局部刷新呢??

#16


嵌套,未试过,可以不嵌套的,放在侧边

#17


引用 12 楼 teerhu 的回复:
Two components with the same id 'CalendarExtender1' can't be added to the application.

id 一样了


同意

#18


引用 17 楼 czhhlove 的回复:
引用 12 楼 teerhu 的回复:
Two components with the same id 'CalendarExtender1' can't be added to the application.

id 一样了


同意



可实际上并没有两个相同的id啊

#19


使用jquery ajax

#20


引用 11 楼 dd__dd 的回复:
重置按钮用个
<input type="reset" id="BtnReset" value="重置" />



谢谢,你的方法可以解决我的问题

能不能再帮我分析一下为什么会出现上面的问题呢?

#21


不怕没有分,就怕你不会,呵呵,高手继续来围观!!

#22


什么情况

#23


引用 22 楼 sandy945 的回复:
什么情况


帮分析一下,为什么会出现这个问题?
问题尚未得到解答

#24


引用 1 楼 wosizy 的回复:
出现 什么问题、、?


出现的问题已经给出,帮忙看看

#25


引用 20 楼 coverallwangp 的回复:
引用 11 楼 dd__dd 的回复:
重置按钮用个
<input type="reset" id="BtnReset" value="重置" />



谢谢,你的方法可以解决我的问题

能不能再帮我分析一下为什么会出现上面的问题呢?

你是指这个么

#26


引用楼主 coverallwangp 的回复:
<table width="713" border="0" cellspacing="0" cellpadding="0" class="bull">
      <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
      <ContentTemplate>
          <tr>


不要这样使用UpdatePanel。

ContentTemplate放完整的东西。

#27


将updatepanel1的下列属性设置一下,防止内部回发引起自身回发
ChildrenAsTriggers="False" 
        UpdateMode="Conditional"

#28


用ajaxpanel吧比updatepanel好多了

#29


UpdatePane 怎么样能把多个放开刷新啊

#1


出现 什么问题、、?
  

#2


楼主,错误提示呢!贴出来才好帮你看看问题出在哪里!!!

#3


来帮顶!@!!!!!!!!

#4


ID="UpdatePanel1" runat="server" UpdateMode="Conditional"

把UpdateMode="Conditional"去掉试试

#5


点重置前:
updatepanel局部刷新出现问题

点重置后:
updatepanel局部刷新出现问题

#6


错误提示:

网页错误详细信息

用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322; CIBA)
时间戳: Fri, 23 Apr 2010 02:58:34 UTC


消息: Sys.InvalidOperationException: Two components with the same id 'CalendarExtender1' can't be added to the application.
行: 3654
字符: 59
代码: 0
URI: http://localhost:5002/hdershou/ScriptResource.axd?d=4dUdhknppdo1n354TGN32sd_BOH0LlPdtr7LCsqUbGP4GI8QJR5nbgbGvvpUEOIMWORXJOL9UD_dy0ZDybheBFP-CFjMGwIrVesodE5Dwgc1&t=633961487579687500

#7


帮助解决的话,另外送分!!!!!

帮助解决的话,另外送分!!!!!

#8


是不是 页面 全部刷新了???

#9


引用 8 楼 wosizy 的回复:
是不是 页面 全部刷新了???

http://topic.csdn.net/u/20090611/11/73fda8b4-9553-49a4-9b64-0d972812efb9.html

#10


Two components with the same id 'CalendarExtender1' can't be added to the application.

id 一样了 

#11


重置按钮用个
<input type="reset" id="BtnReset" value="重置" />

#12


Two components with the same id 'CalendarExtender1' can't be added to the application.

id 一样了 

#13


用多个updatepanel

#14


updatepanel 可以嵌套使用吗? 以前没试过

#15


引用 10 楼 sandy945 的回复:
Two components with the same id 'CalendarExtender1' can't be added to the application.

id 一样了


我只用了这一个CalendarExtender,应该不会一样才对;

我去掉最外层的那个updatepanel之后,就没错了

但是怎么才能实现只有注册信息部分的局部刷新呢??

#16


嵌套,未试过,可以不嵌套的,放在侧边

#17


引用 12 楼 teerhu 的回复:
Two components with the same id 'CalendarExtender1' can't be added to the application.

id 一样了


同意

#18


引用 17 楼 czhhlove 的回复:
引用 12 楼 teerhu 的回复:
Two components with the same id 'CalendarExtender1' can't be added to the application.

id 一样了


同意



可实际上并没有两个相同的id啊

#19


使用jquery ajax

#20


引用 11 楼 dd__dd 的回复:
重置按钮用个
<input type="reset" id="BtnReset" value="重置" />



谢谢,你的方法可以解决我的问题

能不能再帮我分析一下为什么会出现上面的问题呢?

#21


不怕没有分,就怕你不会,呵呵,高手继续来围观!!

#22


什么情况

#23


引用 22 楼 sandy945 的回复:
什么情况


帮分析一下,为什么会出现这个问题?
问题尚未得到解答

#24


引用 1 楼 wosizy 的回复:
出现 什么问题、、?


出现的问题已经给出,帮忙看看

#25


引用 20 楼 coverallwangp 的回复:
引用 11 楼 dd__dd 的回复:
重置按钮用个
<input type="reset" id="BtnReset" value="重置" />



谢谢,你的方法可以解决我的问题

能不能再帮我分析一下为什么会出现上面的问题呢?

你是指这个么

#26


引用楼主 coverallwangp 的回复:
<table width="713" border="0" cellspacing="0" cellpadding="0" class="bull">
      <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
      <ContentTemplate>
          <tr>


不要这样使用UpdatePanel。

ContentTemplate放完整的东西。

#27


将updatepanel1的下列属性设置一下,防止内部回发引起自身回发
ChildrenAsTriggers="False" 
        UpdateMode="Conditional"

#28


用ajaxpanel吧比updatepanel好多了

#29


UpdatePane 怎么样能把多个放开刷新啊