50分相送关于repeater嵌套

jiyongxing2006 2009-10-29 07:30:58
前台代码:<div>
<asp:Repeater ID="repeaterMain" runat="server" OnItemDataBound="rp_ItemDataBound">
<ItemTemplate><table style="width: 100px">
<tr>
<td style="width: 100px"><%#DataBinder.Eval(Container,"DataItem.Big_name")%>
</td>
</tr>
</table>
<!-- 绑定小类-->
<asp:Repeater ID ="repeaterSub" runat ="server" >
<ItemTemplate ><table style="width: 100px">
<tr>
<td style="width: 100px"><%#DataBinder.Eval(Container, "DataItem.small_name")%>
</td>
</tr>
</table></ItemTemplate></asp:Repeater>
</ItemTemplate>
</asp:Repeater>
<br />
<br />

</div>


后台代码:

public void rpbind()
{

string strSQL1 = "select Big_name from big";
SqlDataAdapter da = new SqlDataAdapter(strSQL1, cn);
DataSet ds = new DataSet();
cn.Open();
da.Fill(ds);
repeaterMain.DataSource = ds.Tables[0].DefaultView;
repeaterMain.DataBind();
cn.Close();
}
protected void rp_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rpColumnNews = (Repeater)e.Item.FindControl("repeaterSub");
//找到分类Repeater关联的数据项
DataRowView rowv = (DataRowView)e.Item.DataItem;
//提取分类ID
string strClassID = Convert.ToString(rowv["B_ID"]);
//里面的Repeater
string strSQL2 = "select small.small_name from small,big where ";
strSQL2 += " (small.B_ID=big.B_ID and big.B_ID=" + strClassID + ") or (small.B_ID=big.B_ID and big.ParentID=" + strClassID + ")";

SqlDataAdapter da2 = new SqlDataAdapter(strSQL2, cn);
ds = new DataSet();
da2.Fill(ds, "WZ");
rpColumnNews.DataSource = ds.Tables["WZ"].DefaultView;
rpColumnNews.DataBind();
cn.Close();
}

}


运行后提示
“/repeater嵌套”应用程序中的服务器错误。
--------------------------------------------------------------------------------

B_ID 既不是表 Table 的 DataColumn 也不是 DataRelation。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentException: B_ID 既不是表 Table 的 DataColumn 也不是 DataRelation。

源错误:


行 41: DataRowView rowv = (DataRowView)e.Item.DataItem;
行 42: //提取分类ID
行 43: string strClassID = Convert.ToString(rowv["B_ID"]);
行 44: //里面的Repeater
行 45: string strSQL2 = "select small.small_name from small,big where ";


高手帮忙看看哪里出错了。谢谢了,分就那么多了,全送了~~
...全文
268 12 打赏 收藏 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
camperer 2009-10-29
  • 打赏
  • 举报
回复
ds = new DataSet();
DataSet ds=...
jiyongxing2006 2009-10-29
  • 打赏
  • 举报
回复
各位,我把itemdatabind事件代码写成这样:


Repeater rpColumnNews = (Repeater)e.Item.FindControl("repeaterSub");
//找到分类Repeater关联的数据项
DataRowView rowv = (DataRowView)e.Item.DataItem;
//提取分类ID
string strClassID = Convert.ToString(rowv["B_ID"]);
//里面的Repeater
string strSQL2 = "select big.B_ID,small.small_name from small,big where small.B_ID=big.B_ID and big.B_ID=" + strClassID;

SqlDataAdapter da2 = new SqlDataAdapter(strSQL2, cn);
ds = new DataSet();
da2.Fill(ds);
rpColumnNews.DataSource = ds.Tables[“small"].DefaultView;
rpColumnNews.DataBind();
cn.Close();

运行后提示出错:
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 64: ds = new DataSet();
行 65: da2.Fill(ds);
行 66: rpColumnNews.DataSource = ds.Tables["small"].DefaultView;
行 67: rpColumnNews.DataBind();
行 68: cn.Close();

把:da2.Fill(ds);
rpColumnNews.DataSource = ds.Tables[0].DefaultView;
修改为:da2.Fill(ds,"small");
rpColumnNews.DataSource=ds.Tables["small"].DefaultView;运行仍然是上面的错误提示。还有什么原因呢?导致这样的错误呢,实在是找不到了~~郁闷
wuyq11 2009-10-29
  • 打赏
  • 举报
回复
<tr>
<td style="width: 100px"> <%#DataBinder.Eval(Container,"DataItem.B_ID")%>
</td>
<td style="width: 100px"> <%#DataBinder.Eval(Container,"DataItem.Big_name")%>
</td>
</tr>
wuyq11 2009-10-29
  • 打赏
  • 举报
回复
select B_ID,Big_name from big
wuyq11 2009-10-29
  • 打赏
  • 举报
回复
<tr>
<td style="width: 100px"> <%#DataBinder.Eval(Container,"DataItem.B_ID")%>
</td>
</tr>
zzxap 2009-10-29
  • 打赏
  • 举报
回复
SELECT 语句,添加上B_ID字段。

SELECT B_ID......
TalesTen 2009-10-29
  • 打赏
  • 举报
回复
干嘛要这么弄??
happy664618843 2009-10-29
  • 打赏
  • 举报
回复
string sqlstr = "select top 3* from tb_EmpID select top 3a.*,b.UserID from tb_Employee as a inner join tb_EmpID as b on a.UserID=b.UserID";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds);
myds.Tables[0].TableName = "tb_EmpID";
myds.Tables[1].TableName = "tb_Employee";
DataColumn Parent = myds.Tables["tb_EmpID"].Columns["UserID"];
DataColumn Child = myds.Tables["tb_Employee"].Columns["UserID"];
DataRelation tableRelation = new DataRelation("tableRelation", Parent, Child, false);
myds.Relations.Add(tableRelation);
parentRepeater.DataSource = myds.Tables["tb_EmpID"].DefaultView;
parentRepeater.DataBind();
sqlcon.Close();




前台里加上
<asp:repeater id="childRepeater" runat="server"
DataSource='<%#((System.Data.DataRowView)Container.DataItem).CreateChildView("tableRelation") %>'>
ch46485f 2009-10-29
  • 打赏
  • 举报
回复
低手看不懂
jiangshun 2009-10-29
  • 打赏
  • 举报
回复
<asp:Repeater ID ="repeaterSub"  runat ="server" DataSource=<%#  Bind(DataBinder.Eval(Container,"B_ID"))%> >
<ItemTemplate > <table style="width: 100px">
<tr>
<td style="width: 100px"> <%#DataBinder.Eval(Container, "DataItem.small_name")%>
</td>
</tr>
</table> </ItemTemplate> </asp:Repeater>
jiangshun 2009-10-29
  • 打赏
  • 举报
回复
试试,手写的,没测试,你自己试试

//后台
public DateSet Bind(string strClassID)
{

string strSQL2 = "select small.small_name from small,big where ";
strSQL2 += " (small.B_ID=big.B_ID and big.B_ID=" + strClassID + ") or (small.B_ID=big.B_ID and big.ParentID=" + strClassID + ")";

SqlDataAdapter da2 = new SqlDataAdapter(strSQL2, cn);
ds = new DataSet();
da2.Fill(ds, "WZ");
return ds;
}


前台


<asp:Repeater ID ="repeaterSub" runat ="server" DataSource=<% Bind(DataBinder.Eval(Container,"B_ID"))%> >
<ItemTemplate > <table style="width: 100px">
<tr>
<td style="width: 100px"> <%#DataBinder.Eval(Container, "DataItem.small_name")%>
</td>
</tr>
</table> </ItemTemplate> </asp:Repeater>
小_虎 2009-10-29
  • 打赏
  • 举报
回复
单步提取sql字符串,看看能不能查出数据来?
内容概要:本文基于Matlab/Simulink平台,对电励磁同步电机在异步牵入、稳态运行及能耗制动三个阶段的全周期动态特性进行建模仿真与系统研究。研究构建了完整的电机数学模型与仿真系统,重点分析了电机从异步启动到同步运行的过渡过程、稳态运行时的电磁与机械性能,以及执行能耗制动时的减速特性与能量耗散机理。通过仿真,揭示了励磁电流、负载转矩与转速在不同工况下的动态响应规律与耦合关系,为电机的控制策略设计与性能优化提供了理论依据和数据支持。; 适合人群:具备电机学、电力电子与电力拖动基础知识的电气工程及相关专业的研究生、科研人员与工程技术人员。; 使用场景及目标:①研究电励磁同步电机的启动特性,解决异步牵入过程不稳定或失败的问题;②分析电机在不同负载下的稳态运行性能,优化运行效率;③设计和验证能耗制动策略,精确控制制动过程的减速时间和能量消耗。; 阅读建议:在学习过程中,应结合电机的基本原理,深入理解仿真模型中各模块(如电机本体、励磁控制、负载模型)的搭建逻辑,并通过调整仿真参数(如励磁电压、负载大小)来观察和分析系统动态响应,以加深对电机全周期运行特性的理解。
内容概要:通过介绍短时倒谱(Cepstrogram)计算方法,开展时-倒频分析研究,深入探讨倒谱分析机理、短时倒谱构建逻辑及时-倒频分析的内涵。文中系统对比了时-倒频分析与全局倒谱、传统时频分析方法的差异,阐明其在卷积特征解耦、非平稳信号跟踪、微弱周期特征增强及多维特征融合方面的技术优势,并分析其在语音识别、机械故障诊断、音频处理和非平稳时序信号分析中的典型应用,同时指出其在分辨率、计算复杂度等方面的局限性并提出优化方向。; 适合人群:具备一定信号处理或数据分析基础,从事机械、通信、声学或自动化等领域研究的研发人员及研究生。; 使用场景及目标:① 掌握短时倒谱与时-倒频分析的理论基础与实现方法;② 应用于语音信号处理、机械设备故障诊断、音频相似性检测等工程实践;③ 对比传统方法,提升对复杂非平稳信号中隐含周期特征的识别能力; 阅读建议:此资源以Matlab代码实现为核心,强调理论与实践结合,建议读者在理解核心算法原理的基础上,动手运行代码并调试参数,结合具体应用场景深化对方法适用性与局限性的认识。
摘 要 在数字经济与保险行业深度融合的背景下,传统保险服务普遍存在流程繁琐、信息不对称、线下办理效率低、管理成本高、理赔不透明等问题,已难以适应用户便捷化服务需求与行业数字化发展趋势。推动保险业务线上化、服务智能化、管理平台化,成为提升保险服务质量与运营效率的关键路径。 本文以在线保险服务与管理平台为研究对象,依据软件工程规范,采用 Spring Boot + Vue.js 前后端分离架构,结合 MySQL 数据库完成系统设计与实现。平台面向普通用户与管理员两类角色,涵盖注册登录、保险产品展示、在线投保、智能核保、保单管理、理赔申请、消息通知、保险知识科普、后台管理及数据统计等核心功能,实现保险服务全流程线上化、投保便捷化、保单管理智能化、理赔过程透明化、后台运营高效化。 系统依次完成需求分析、总体设计、详细设计、功能实现与全面测试。测试结果表明,平台在功能完整性、接口响应性能、数据安全防护及多浏览器兼容性方面均达到设计目标,运行稳定可靠。该平台可有效改善传统保险服务痛点,提升用户体验与管理效率,可为保险行业数字化转型提供实用的工程实践参考。 关键词:在线保险;服务平台;Spring Boot;Vue.js;前后端分离;保险数字化

62,271

社区成员

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

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

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

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