Repeater控件 页面刷新后,数据重复绑定 pageload没用用if (!IsPostBack)判断吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 dtsum = ExamArrangeInfo.getExamArrangeForPrint(xn, xq, lsxm, jsdm, kcmc, kssj, kssjz, kkyx, jkyx);DataTable dv = dtsum.Copy(); ; DataTable rpdt = dv.DefaultView.ToTable(true, "kssj", "xn", "xq", "jsxm", "ksdd", "kcmc", "kcdm", "jk", "bsid"); rpdt.DefaultView.Sort = "jsxm"; rpClass.DataSource = rpdt.DefaultView.ToTable(); rpClass.DataBind(); 你干嘛要转来转去呢?你在闹哪样啊dtsum = ExamArrangeInfo.getExamArrangeForPrint(xn, xq, lsxm, jsdm, kcmc, kssj, kssjz, kkyx, jkyx);DataTable dv = dtsum.Copy(); ; DataTable rpdt = dv.DefaultView.ToTable(true, "kssj", "xn", "xq", "jsxm", "ksdd", "kcmc", "kcdm", "jk", "bsid"); rpdt.DefaultView.Sort = "jsxm"; rpClass.DataSource = rpdt.DefaultView.ToTable(); rpClass.DataBind(); DataTable dtsum = ExamArrangeInfo.getExamArrangeForPrint(xn, xq, lsxm, jsdm, kcmc, kssj, kssjz, kkyx, jkyx);dtsum.DefaultView.Sort= "jsxm";rpClass.DataSource = dtsum.DefaultView.ToTable();rpClass.DataBind();这样不行? 因为我的那个dtsum还有别的用途,所以copy一份作为备份。 关键是不懂你什么地址又对dtsum 进行了操作 我这个地方只是筛选了dtsum的某些字段绑定到repeater控件,下面还有别的控件需要dtsum的全部数据,因此copy了一份,然后对dtsum的copy结果筛选,绑定到repeater控件,而不影响dtsum的值。 一个DataTable可以绑定多个控件,你的代码不完整,很难说得清楚 恩,试了,用每次新建一个DataTable,然后将查询结果放在dataTable里面,还是不行。 发完整的代码,关键dtsum 是怎么定义的 如果只是重新绑定的放在,那么你的这个if(!IsPostBack)里面了没有?如果会再一次走过你的这个DataSoucre的话,那就在绑定的时候,你的这个DataScource绑定之前清空一下... ExamArrangeInfo.getExamArrangeForPrint(xn, xq, lsxm, jsdm, kcmc, kssj, kssjz, kkyx, jkyx);加断点,看看每次这里执行结果,进函数里面仔细调试调试。 如果只是重新绑定的放在,那么你的这个if(!IsPostBack)里面了没有?如果会再一次走过你的这个DataSoucre的话,那就在绑定的时候,你的这个DataScource绑定之前清空一下...不能调试,我是直接写的发布程序,C#放在前台的,这个项目的dll文件我是动不了的,因此,我只能在前台页面写C#逻辑代码。 同一个页面用同一种方式绑定的gridview没有这种情况,数据源相同,只有repeater出现问题。 定义是没问题的,因为如果我按照比较小的频率刷,页面是正常的,如果刷新间隔比较大的时候才会出现重复数据。且同一个datatable绑定到gridview是没问题的,只有repeater出现这种问题。 定义是没问题的,因为如果我按照比较小的频率刷,页面是正常的,如果刷新间隔比较大的时候才会出现重复数据。且同一个datatable绑定到gridview是没问题的,只有repeater出现这种问题。那就只剩一种可能,你的SQL语句有问题,特别是关联的语句,很容易漏了条件,导致有重复数据 定义是没问题的,因为如果我按照比较小的频率刷,页面是正常的,如果刷新间隔比较大的时候才会出现重复数据。且同一个datatable绑定到gridview是没问题的,只有repeater出现这种问题。那就只剩一种可能,你的SQL语句有问题,特别是关联的语句,很容易漏了条件,导致有重复数据问题是,页面初始化是正常的,刷新间隔大于1s时,也是正常的,只有短时多次刷新才会产生异常。 DataTable dv = dtsum.Copy(); ;是啥意思啊? 把if(!ispostback)里面的代码段发出来。 恩,我重新写了代码,现在来贴一下,命名全部改变了。<%@ Import Namespace="GoodoWzt.Web" %><%@ Import Namespace="System.Xml" %><script language="C#" runat="server"> protected void Page_Load(object sender, System.EventArgs e) { if (!IsPostBack) { //获取网站及栏目的基本信息 int nSubjectID = WS5.tool_PageParaCheckInt("SubjectID"); int nSiteID = WS5.tool_PageParaCheckInt("SiteID"); //头部logo、banner和bottom信息绑定 xmlTitle.Document = WS5.sbt_get_xd_SubjectAncestorList(nSubjectID); xmlTop.Document = WS5.site_get_xd_SiteInfo(nSiteID); xmlNavigation.Document = WS5.sbt_get_xd_SiteSubjectTree(nSiteID, 0); rp32801.DataSource = WS5.sbt_get_dt_SplitSubjectList(nSubjectID, 32801); rp32801.DataBind(); rp32802.DataSource = WS5.sbt_get_dt_SplitSubjectList(nSubjectID, 32802); rp32802.DataBind(); //获取底部内容相信信息 xmlBottom.Document = WS5.site_get_xd_SiteInfo(nSiteID); } }</script><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"><!-- saved from url=(0064)http://www.pslq.pudong-edu.sh.cn/goodo/Web/LQXX/ZONGHE/28178.htm --><!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><meta content="text/html; charset=utf-8" http-equiv="Content-Type"/><title> <asp:xml id="xmlTitle" runat="server" transformsource="xsltPbTitle.xslt" /></title><link rel="stylesheet" type="text/css" href="css/jcxx_1.css"/><script language="JavaScript" type="text/JavaScript"><!--function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;}function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}}function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x;}function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}}//--></script><meta name="GENERATOR" content="MSHTML 9.00.8112.16490"></head><body onLoad="MM_preloadImages('images/t3_dl_pic2.gif')"><?xml version="1.0" encoding="gb2312"?><table class="t1" border="0" cellSpacing="0" cellPadding="0" width="1002" align="center" height="150"> <tbody> <tr> <td vAlign="top"> <!--头部logo--> <asp:Xml ID="xmlTop" runat="server" TransformSource="xsltHead.xslt" /> </td></tr></tbody></table><table class="t2" border="0" cellSpacing="0" cellPadding="0" width="1002" align="center" height="52"> <tbody> <tr> <td vAlign="top" align="center"> <table class="t2_box" border="0" cellSpacing="0" cellPadding="0" width="90%"> <tbody> <tr> <td> <!--导航栏节点--> <asp:Xml ID="xmlNavigation" runat="server" TransformSource="xsltNavigation.xslt" /> </td> </tr> </tbody></table></td></tr></tbody></table><table class="t3" border="0" cellSpacing="0" cellPadding="0" width="1002" align="center"> <tbody> <tr> <td vAlign="top" width="245" align="right"> <table class="t3_box1" border="0" cellSpacing="0" cellPadding="0" width="210" height="110"> <tbody> <tr> <td vAlign="bottom" align="right"><a style="display:block;width:210px;height:110px;" onMouseOver="MM_swapImage('Image2','','images/t3_dl_pic2.gif',1)" onmouseout="MM_swapImgRestore()" href="http://192.168.99.2:8001/BasePlate/LoginCenter/Login.aspx" target="_blank"></a></TD></TR></TBODY></TABLE> <TABLE class="t3_box2" border="0" cellSpacing="0" cellPadding="0" width="210" height="215" xmlns:myNS="urn:myNameSpace" xmlns:msxsl="urn:schemas-microsoft-com:xslt"> <TBODY> <TR> <TD height="45" vAlign="bottom" width="80" align="center"><IMG src="images/28180_1.gif" width="51" height="45"></TD> <TD class="font_1" vAlign="bottom" width="130" align="left">公告</TD></TR> <TR vAlign="middle" align="center"> <TD height="170" colSpan="2"> <MARQUEE onMouseOver="this.stop()" onMouseOut="this.start()" direction="up" height="150" width="173" scrollAmount="2"> <TABLE border="0" cellSpacing="0" cellPadding="0" width="173" height="150"> <TBODY> <TR> <TD vAlign="top" align="left"> <asp:Repeater ID="rp32801" runat="server"> <ItemTemplate> <asp:Xml ID="Xml3" runat="server" TransformSource='<%#Eval("TXslt").ToString() %>' Document='<%#WS5.cont_get_xd_SubjectContentTopList(int.Parse(Eval("SID").ToString()),int.Parse(Eval("LC").ToString()))%>' /> </ItemTemplate> </asp:Repeater> </TD> <TD vAlign="top" width="757" align="left"> <TABLE class="t3_box3" border="0" cellSpacing="0" cellPadding="0" width="715"> <TBODY> <TR> <TD vAlign="top"><IMG src="images/t3_m_bj1.gif" width="715" height="17"></TD></TR> <TR> <TD class="t3_m2" height="500" vAlign="top" background="images/t3_m_bj2.gif" align="center"> <TABLE class="style_2" border="0" cellSpacing="0" cellPadding="0" width="670"> <TBODY> <asp:Repeater ID="rp32802" runat="server"> <ItemTemplate> <%#(Container.ItemIndex%2==0)?"<tr>":""%> <asp:Xml ID="Xml30" runat="server" TransformSource='<%#Eval("TXslt").ToString() %>' Document='<%#WS5.cont_get_xd_SubjectContentTopList(int.Parse(Eval("SID").ToString()),int.Parse(Eval("LC").ToString()))%>' /> <%#(Container.ItemIndex%2==1)?"</tr>":""%> </ItemTemplate> </asp:Repeater></TBODY></TABLE> </TD></TR> <tr> <TD class="t3_m2" vAlign="bottom"><IMG src="images/t3_m_bj3.gif" width="715" height="17"></TD></tr></TBODY></TABLE> <TABLE class="t3_box5" border="0" cellSpacing="0" cellPadding="0" width="730" height="30"> <TBODY> <!-- 底部信息 --> <asp:Xml runat="server" ID="xmlBottom" TransformSource='bottom.xslt' /> </TBODY> </TABLE> <IMG src="images/spacer.gif" width="100" height="40"></TD></TR></TBODY></TABLE></BODY></HTML> 用集合吧.....看到dataTable就头大.. 怎样清空repeater?是绑定一个空的数据源,还是移除子控件? 最古老的写法:this.Repeater.DataSource=null; 有没有想过是数据源的问题呢?先把Repeater放一边,直接Response.Write(DataTable.Rows.Count) dtsum = ExamArrangeInfo.getExamArrangeForPrint(xn, xq, lsxm, jsdm, kcmc, kssj, kssjz, kkyx, jkyx);DataTable dv = dtsum.Copy(); ; DataTable rpdt = dv.DefaultView.ToTable(true, "kssj", "xn", "xq", "jsxm", "ksdd", "kcmc", "kcdm", "jk", "bsid"); rpdt.DefaultView.Sort = "jsxm"; rpClass.DataSource=null; rpClass.DataBind(); rpClass.DataSource = rpdt.DefaultView.ToTable(); rpClass.DataBind();试一下 1.把copy去掉 用到数据的时候再去数据库取一遍就是了(不会比你copy一下慢多少) 引用类型的copy不是你想象中的那么简单 1.把copy去掉 用到数据的时候再去数据库取一遍就好了(不会比你copy下慢多少) copy 造成的!你把COPY注释掉,然后再试,一步一步调试! 求asp.net原理的书籍 关于:FreeTextBox 兼容问题 如何实现文件的下载 存储过程嵌套的事务问题 企业级类库中的数据适配器怎么使用 如何实现网络层的安全? 高分请教:PDA中关于viewstate的问题!急!!! [讨论]能否取得某控件的发往服务器端的JScript?即:"javascript:_dopostback(……)" 谁能介绍一本asp.net入门的书,不要实例的那种,好书有分 asp.net添加控件的问题 实时调试devenv.exe中发生未处理的win32异常 uploadify+asp.net 无法上传文件,进度条一直不动
DataTable dv = dtsum.Copy(); ;
DataTable rpdt = dv.DefaultView.ToTable(true, "kssj", "xn", "xq", "jsxm", "ksdd", "kcmc", "kcdm", "jk", "bsid");
rpdt.DefaultView.Sort = "jsxm";
rpClass.DataSource = rpdt.DefaultView.ToTable();
rpClass.DataBind();
DataTable dv = dtsum.Copy(); ;
DataTable rpdt = dv.DefaultView.ToTable(true, "kssj", "xn", "xq", "jsxm", "ksdd", "kcmc", "kcdm", "jk", "bsid");
rpdt.DefaultView.Sort = "jsxm";
rpClass.DataSource = rpdt.DefaultView.ToTable();
rpClass.DataBind();
dtsum.DefaultView.Sort= "jsxm";
rpClass.DataSource = dtsum.DefaultView.ToTable();
rpClass.DataBind();这样不行?
如果只是重新绑定的放在,那么你的这个if(!IsPostBack)里面了没有?如果会再一次走过你的这个DataSoucre的话,那就在绑定的时候,你的这个DataScource绑定之前清空一下...
如果只是重新绑定的放在,那么你的这个if(!IsPostBack)里面了没有?如果会再一次走过你的这个DataSoucre的话,那就在绑定的时候,你的这个DataScource绑定之前清空一下...
不能调试,我是直接写的发布程序,C#放在前台的,这个项目的dll文件我是动不了的,因此,我只能在前台页面写C#逻辑代码。
里面的代码段发出来。
<%@ Import Namespace="GoodoWzt.Web" %>
<%@ Import Namespace="System.Xml" %>
<script language="C#" runat="server">
protected void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
//获取网站及栏目的基本信息
int nSubjectID = WS5.tool_PageParaCheckInt("SubjectID");
int nSiteID = WS5.tool_PageParaCheckInt("SiteID");
//头部logo、banner和bottom信息绑定
xmlTitle.Document = WS5.sbt_get_xd_SubjectAncestorList(nSubjectID);
xmlTop.Document = WS5.site_get_xd_SiteInfo(nSiteID);
xmlNavigation.Document = WS5.sbt_get_xd_SiteSubjectTree(nSiteID, 0);
rp32801.DataSource = WS5.sbt_get_dt_SplitSubjectList(nSubjectID, 32801);
rp32801.DataBind();
rp32802.DataSource = WS5.sbt_get_dt_SplitSubjectList(nSubjectID, 32802);
rp32802.DataBind(); //获取底部内容相信信息 xmlBottom.Document = WS5.site_get_xd_SiteInfo(nSiteID);
}
}
</script>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0064)http://www.pslq.pudong-edu.sh.cn/goodo/Web/LQXX/ZONGHE/28178.htm -->
<!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>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<title>
<asp:xml id="xmlTitle" runat="server" transformsource="xsltPbTitle.xslt" />
</title>
<link rel="stylesheet" type="text/css" href="css/jcxx_1.css"/>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script><meta name="GENERATOR" content="MSHTML 9.00.8112.16490"></head>
<body onLoad="MM_preloadImages('images/t3_dl_pic2.gif')"><?xml version="1.0" encoding="gb2312"?>
<table class="t1" border="0" cellSpacing="0" cellPadding="0" width="1002" align="center"
height="150">
<tbody>
<tr>
<td vAlign="top">
<!--头部logo-->
<asp:Xml ID="xmlTop" runat="server" TransformSource="xsltHead.xslt" />
</td></tr></tbody></table>
<table class="t2" border="0" cellSpacing="0" cellPadding="0" width="1002" align="center"
height="52">
<tbody>
<tr>
<td vAlign="top" align="center">
<table class="t2_box" border="0" cellSpacing="0" cellPadding="0" width="90%">
<tbody>
<tr>
<td>
<!--导航栏节点-->
<asp:Xml ID="xmlNavigation" runat="server" TransformSource="xsltNavigation.xslt" />
</td>
</tr>
</tbody></table></td></tr></tbody></table>
<table class="t3" border="0" cellSpacing="0" cellPadding="0" width="1002" align="center">
<tbody>
<tr>
<td vAlign="top" width="245" align="right">
<table class="t3_box1" border="0" cellSpacing="0" cellPadding="0" width="210"
height="110">
<tbody>
<tr>
<td vAlign="bottom" align="right"><a style="display:block;width:210px;height:110px;" onMouseOver="MM_swapImage('Image2','','images/t3_dl_pic2.gif',1)"
onmouseout="MM_swapImgRestore()" href="http://192.168.99.2:8001/BasePlate/LoginCenter/Login.aspx"
target="_blank"></a></TD></TR></TBODY></TABLE>
<TABLE class="t3_box2" border="0" cellSpacing="0" cellPadding="0" width="210"
height="215" xmlns:myNS="urn:myNameSpace" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<TBODY>
<TR>
<TD height="45" vAlign="bottom" width="80" align="center"><IMG src="images/28180_1.gif"
width="51" height="45"></TD>
<TD class="font_1" vAlign="bottom" width="130" align="left">公告</TD></TR>
<TR vAlign="middle" align="center">
<TD height="170" colSpan="2">
<MARQUEE onMouseOver="this.stop()" onMouseOut="this.start()"
direction="up" height="150" width="173" scrollAmount="2">
<TABLE border="0" cellSpacing="0" cellPadding="0" width="173"
height="150">
<TBODY>
<TR>
<TD vAlign="top" align="left">
<asp:Repeater ID="rp32801" runat="server">
<ItemTemplate>
<asp:Xml ID="Xml3" runat="server" TransformSource='<%#Eval("TXslt").ToString() %>'
Document='<%#WS5.cont_get_xd_SubjectContentTopList(int.Parse(Eval("SID").ToString()),int.Parse(Eval("LC").ToString()))%>' />
</ItemTemplate>
</asp:Repeater>
</TD>
<TD vAlign="top" width="757" align="left">
<TABLE class="t3_box3" border="0" cellSpacing="0" cellPadding="0" width="715">
<TBODY>
<TR>
<TD vAlign="top"><IMG src="images/t3_m_bj1.gif"
width="715" height="17"></TD></TR>
<TR>
<TD class="t3_m2" height="500" vAlign="top" background="images/t3_m_bj2.gif"
align="center">
<TABLE class="style_2" border="0" cellSpacing="0" cellPadding="0"
width="670">
<TBODY>
<asp:Repeater ID="rp32802" runat="server">
<ItemTemplate>
<%#(Container.ItemIndex%2==0)?"<tr>":""%>
<asp:Xml ID="Xml30" runat="server" TransformSource='<%#Eval("TXslt").ToString() %>'
Document='<%#WS5.cont_get_xd_SubjectContentTopList(int.Parse(Eval("SID").ToString()),int.Parse(Eval("LC").ToString()))%>' />
<%#(Container.ItemIndex%2==1)?"</tr>":""%>
</ItemTemplate>
</asp:Repeater></TBODY></TABLE>
</TD></TR>
<tr>
<TD class="t3_m2" vAlign="bottom"><IMG src="images/t3_m_bj3.gif"
width="715" height="17"></TD></tr></TBODY></TABLE>
<TABLE class="t3_box5" border="0" cellSpacing="0" cellPadding="0" width="730"
height="30">
<TBODY>
<!-- 底部信息 -->
<asp:Xml runat="server" ID="xmlBottom" TransformSource='bottom.xslt' />
</TBODY>
</TABLE>
<IMG src="images/spacer.gif"
width="100" height="40"></TD></TR></TBODY></TABLE></BODY></HTML>
最古老的写法:this.Repeater.DataSource=null;
DataTable dv = dtsum.Copy(); ;
DataTable rpdt = dv.DefaultView.ToTable(true, "kssj", "xn", "xq", "jsxm", "ksdd", "kcmc", "kcdm", "jk", "bsid");
rpdt.DefaultView.Sort = "jsxm";
rpClass.DataSource=null;
rpClass.DataBind();
rpClass.DataSource = rpdt.DefaultView.ToTable();
rpClass.DataBind();
试一下