updatepanel 使用疑问

cnuusw 2010-01-19 11:45:41

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebService1.WebForm1" %>

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePartialRendering="true"></cc1:ToolkitScriptManager>



<div class="place"><span>当前位置:</span><a href="../Index.aspx" target="_parent">首页</a> > 添加行政案件</div>
<table class="public_input">
<tr>
<th colspan="2"> 行政案件添加</th>
</tr>
</table>
<div class="tab">
<div class="tabtitle">
<ul id="mytab">
<li class="active" onclick="nTabs(this,0);">案件基本信息</li>
<li class="normal" onclick="nTabs(this,1);">客户联系方式</li>
</ul>
</div>
<div class="tabcontent">
<div id="mytab_content0">
<table class="public_input" style="margin-left:0px; width:100%; margin-top:0px; border:none;">

<asp:UpdatePanel ID="UpdatePanel1" runat="server" Visible="false">
<ContentTemplate >
<div id="first_leve" runat="server">
<tr>
<td class="public_input_left">原告:</td>
<td><asp:TextBox id="txtAccuser" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server"
ControlToValidate="txtAccuser" Display="Dynamic" ErrorMessage="原告不能为空。"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td class="public_input_left">被告:</td>
<td><asp:TextBox id="txtAccused" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" ControlToValidate="txtAccused"
ErrorMessage="被告人不能为空。" Display="Dynamic"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td class="public_input_left">标的金额:</td>
<td><asp:TextBox id="txtMoney" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td class="public_input_left">诉讼保全:</td>
<td><asp:DropDownList ID="ddlTarget" runat="server">
<asp:ListItem>财产</asp:ListItem>
<asp:ListItem>证据</asp:ListItem>
</asp:DropDownList></td>
</tr>
</div>
<div id="second_leve" runat="server" visible="false">
<tr>
<td class="public_input_left">上诉人:</td>
<td><asp:TextBox id="txtAppellor" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator9" runat="server" ControlToValidate="txtAppellor" ErrorMessage="上诉人不能为空。"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td class="public_input_left">被上诉人:</td>
<td><asp:TextBox id="txtAppellee" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator10" runat="server" ControlToValidate="txtAppellee" ErrorMessage="被上诉人不能为空。"></asp:RequiredFieldValidator></td>
</tr>
</div>
<div id="third_leve" runat="server" visible="false">
<tr>
<td class="public_input_left">申诉人:</td>
<td><asp:TextBox id="txtGrievant" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator11" runat="server" ControlToValidate="txtGrievant" ErrorMessage="申诉人不能为空。"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td class="public_input_left">被申诉人:</td>
<td><asp:TextBox id="txtRespondent" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator12" runat="server" ControlToValidate="txtRespondent" ErrorMessage="被申诉人不能为空。"></asp:RequiredFieldValidator></td>
</tr>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlLeveOfTrial"
EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
<tr>
<td class="public_input_left">案件名称<span class="notnull">(*)</span>:</td>
<td><asp:TextBox ID="txtCaseName" runat="server" Width="600px"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtCaseName" ErrorMessage="案件名称不能为空" Display="Dynamic"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td class="public_input_left">审级<span class="notnull">(*)</span>:</td>
<td>
<asp:DropDownList ID="ddlLeveOfTrial" runat="server" AutoPostBack="True"
onselectedindexchanged="ddlLeveOfTrial_SelectedIndexChanged">
<asp:ListItem>请选择</asp:ListItem>
<asp:ListItem>一审</asp:ListItem>
<asp:ListItem>二审</asp:ListItem>
<asp:ListItem>再审</asp:ListItem>
</asp:DropDownList>
<asp:CompareValidator ID="CompareValidator6" runat="server" ErrorMessage="请选择案件审级。" ValueToCompare="请选择" Operator="NotEqual" ControlToValidate="ddlLeveOfTrial"></asp:CompareValidator>
</td>
</tr>
</table>
</div>
</div>
</div>

</form>
</body>
</html>





protected void ddlLeveOfTrial_SelectedIndexChanged(object sender, EventArgs e)
{
switch (this.ddlLeveOfTrial.SelectedValue.Trim())
{
case "一审":
this.first_leve.Visible = true;
this.second_leve.Visible = false;
this.third_leve.Visible = false;
break;
case "二审":
this.first_leve.Visible = false;
this.second_leve.Visible = true;
this.third_leve.Visible = false;
break;
case "再审":
this.first_leve.Visible = false;
this.second_leve.Visible = false;
this.third_leve.Visible = true;
break;
}
}





上述代码执行失败。求助解决办法。
...全文
154 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnuusw 2010-01-20
  • 打赏
  • 举报
回复
楼上的朋友是说,Updatepanel必须包含全部布局才可以,不能仅仅只包含需要改变的部分?
这个是不是updatepanel的bug,这样会造成刷新很多代码,浪费服务器资源吧?
鸭梨山大帝 2010-01-20
  • 打赏
  • 举报
回复

<asp:UpdatePanel ID="UpdatePanel1" runat="server" Visible="false">
<ContentTemplate >
<table class="public_input" style="margin-left:0px; width:100%; margin-top:0px; border:none;">
... ...
... ...
</table>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlLeveOfTrial"
EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>





[Quote=引用 4 楼 cnuusw 的回复:]
已经解决问题,现在发现一个新问题,updatepannel里生成的数据错位该怎么吧?
[/Quote]
cnuusw 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xray2005 的回复:]
版本问题。自己漫漫看了。调整了。
[/Quote]

这位朋友能说详细点吗?
xray2005 2010-01-20
  • 打赏
  • 举报
回复
版本问题。自己漫漫看了。调整了。
cnuusw 2010-01-20
  • 打赏
  • 举报
回复



如图:他生成到审级上面了。

实际上需要他生成到“第三人”下面(按照上图的格式排列好)。updatepanel再代码中的位置明明是“第三人下面啊”
cnuusw 2010-01-20
  • 打赏
  • 举报
回复
已经解决问题,现在发现一个新问题,updatepannel里生成的数据错位该怎么吧?
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cnuusw 的回复:]
已经解决问题,现在发现一个新问题,updatepannel里生成的数据错位该怎么吧?
[/Quote]

因为updatepanel编译成HTML的标签是div 所以排版问题跟他没有关系
忽略那个updatepanel 你看看那些地方排版出了问题
随风落梦 2010-01-20
  • 打赏
  • 举报
回复
仔细的看看代码,可能少了或多了个东西
鸭梨山大帝 2010-01-20
  • 打赏
  • 举报
回复
不是UpdatePanel的BUG,是你自己布局的问题.
你查看一下HTML源代码
你在Table的tr 间插入了div,然后又插入了UpdatePanel.
会造成布局偏差的.

[Quote=引用 9 楼 cnuusw 的回复:]
楼上的朋友是说,Updatepanel必须包含全部布局才可以,不能仅仅只包含需要改变的部分?
这个是不是updatepanel的bug,这样会造成刷新很多代码,浪费服务器资源吧?
[/Quote]
cnuusw 2010-01-20
  • 打赏
  • 举报
回复
顶起来
xray2005 2010-01-19
  • 打赏
  • 举报
回复
DropDownList要在updateplane1里面。

如下:

<tr>
<td class="public_input_left">审级<span class="notnull">(*)</span>:</td>
<td>
<asp:DropDownList ID="ddlLeveOfTrial" runat="server" AutoPostBack="True"
onselectedindexchanged="ddlLeveOfTrial_SelectedIndexChanged">
<asp:ListItem>请选择</asp:ListItem>
<asp:ListItem>一审</asp:ListItem>
<asp:ListItem>二审</asp:ListItem>
<asp:ListItem>再审</asp:ListItem>
</asp:DropDownList>
<asp:CompareValidator ID="CompareValidator6" runat="server" ErrorMessage="请选择案件审级。" ValueToCompare="请选择" Operator="NotEqual" ControlToValidate="ddlLeveOfTrial"></asp:CompareValidator>
</td>
</tr>
</table>

</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlLeveOfTrial"
EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
huwei12345 2010-01-19
  • 打赏
  • 举报
回复
1.把 下拉框放到 updateplane1里面

2.设置 updateplane1 手工刷新 UpdatePanel1.Update();
huwei12345 2010-01-19
  • 打赏
  • 举报
回复
没有放到 UpdatePanel1 里面,就手工指定 ,让他 postback

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧