asp.net Repeater控件 绑定数据 顺求高手指教
2011-01-06 20:57
405 查看
我了个去 咱其实米有具体学过asp.net... 都是平时慢慢积累的 写前台超累 完全的前台白痴啊;;;;; 这次遇到一个问题 整死我了 先说说我原来的写法吧 这个写法让我被妈妈骂了顿.; ;;
首先 前台代码:
Code:
<asp:Repeater ID="rptTest" runat="server">
<ItemTemplate>
<asp:Label ID="lblCount" runat="server" Text="qzw"></asp:Label>.
<asp:Label ID="lblTitle" runat="server" Text="qzw"></asp:Label>
<br /><br/>
<asp:RadioButton ID="rdoAnsA" runat="server" GroupName="pm" /><br/>
<asp:RadioButton ID="rdoAnsB" runat="server" GroupName="pm"/><br/>
<asp:RadioButton ID="rdoAnsC" runat="server" GroupName="pm"/><br/>
<asp:RadioButton ID="rdoAnsD" runat="server" GroupName="pm"/><br/>
<br/><br/>
</ItemTemplate>
</asp:Repeater>
原来写法类似于这段(由于被我删了,我就不重写遍了)
Code:
<asp:Repeater runat="server" ID="singleRep" DataSourceID="sqlSingle">
<ItemTemplate>
<a>
<%# singeCount++ %>
.<%# Eval("Title") %>
<asp:HiddenField runat="server" Value='<%# Eval("ID") %>' ID="titleId" />
</a>
<div>
A.<asp:RadioButton ID="rbA" GroupName="option" runat="server" Text='<%# Eval("AnswerA") %>' />
<br />
B.<asp:RadioButton ID="rbB" GroupName="option" runat="server" Text='<%# Eval("AnswerB") %>' />
<br />
C.<asp:RadioButton ID="rbC" GroupName="option" runat="server" Text='<%# Eval("AnswerC") %>' />
<br />
D.<asp:RadioButton ID="rbD" GroupName="option" runat="server" Text='<%# Eval("AnswerD") %>' />
</div>
</ItemTemplate>
</asp:Repeater>
这个是从网上当的 于是我就仿照它来用Repeater控件 汗 之前都不知道要用什么控件..;;
可以看到它是自动绑定的数据源. 但是我的不行(或者说我不会搞...) 因为我是取了数据后存入了写的类中(Model类)
Code:
TestControl tc = new TestControl();
//取试题
List<ProblemModel> problemArray = tc.GetTest(5);
//绑定数据
rptTest.DataSource = problemArray;
rptTest.DataBind();
我原先就是这样手动绑定数据 然后前台用<%# Eval()%>绑定数据的 结果被我妈一顿骂 说我用asp的老方法啥的 说不安全等等云云 反正是被骂得狗血淋头 ;;;悲惨猫 T^T
于是我的前台就改了第一段代码那样, 开始在后台动工 汗啊 我哪懂这些啊 硬是瞎整 查文档啊 跟踪变量看值啊 试了两下 还真给我写出来了;;
Code:
for (int i = 0; i < rptTest.Items.Count; i++)
{
RepeaterItem ri=rptTest.Items[i];
ProblemModel pm=problemArray[i];
Label lblCount = ri.Controls[1] as Label;
lblCount.Text = (i+1).ToString();
Label lblTitle = ri.Controls[3] as Label;
lblTitle.Text = pm.Title;
RadioButton rdobtnA = ri.Controls[5] as RadioButton;
rdobtnA.Text = pm.Ans1;
RadioButton rdobtnB = ri.Controls[7] as RadioButton;
rdobtnB.Text = pm.Ans2;
RadioButton rdobtnC = ri.Controls[9] as RadioButton;
rdobtnC.Text = pm.Ans3;
RadioButton rdobtnD = ri.Controls[11] as RadioButton;
rdobtnD.Text = pm.Ans4;
}
最后的结果就是:
东西出来了 但是我觉得写得实在很挫 效率貌似也不怎么样 不知道有米有更好点的方法 或者有没有更好的控件哇
首先 前台代码:
Code:
<asp:Repeater ID="rptTest" runat="server">
<ItemTemplate>
<asp:Label ID="lblCount" runat="server" Text="qzw"></asp:Label>.
<asp:Label ID="lblTitle" runat="server" Text="qzw"></asp:Label>
<br /><br/>
<asp:RadioButton ID="rdoAnsA" runat="server" GroupName="pm" /><br/>
<asp:RadioButton ID="rdoAnsB" runat="server" GroupName="pm"/><br/>
<asp:RadioButton ID="rdoAnsC" runat="server" GroupName="pm"/><br/>
<asp:RadioButton ID="rdoAnsD" runat="server" GroupName="pm"/><br/>
<br/><br/>
</ItemTemplate>
</asp:Repeater>
原来写法类似于这段(由于被我删了,我就不重写遍了)
Code:
<asp:Repeater runat="server" ID="singleRep" DataSourceID="sqlSingle">
<ItemTemplate>
<a>
<%# singeCount++ %>
.<%# Eval("Title") %>
<asp:HiddenField runat="server" Value='<%# Eval("ID") %>' ID="titleId" />
</a>
<div>
A.<asp:RadioButton ID="rbA" GroupName="option" runat="server" Text='<%# Eval("AnswerA") %>' />
<br />
B.<asp:RadioButton ID="rbB" GroupName="option" runat="server" Text='<%# Eval("AnswerB") %>' />
<br />
C.<asp:RadioButton ID="rbC" GroupName="option" runat="server" Text='<%# Eval("AnswerC") %>' />
<br />
D.<asp:RadioButton ID="rbD" GroupName="option" runat="server" Text='<%# Eval("AnswerD") %>' />
</div>
</ItemTemplate>
</asp:Repeater>
这个是从网上当的 于是我就仿照它来用Repeater控件 汗 之前都不知道要用什么控件..;;
可以看到它是自动绑定的数据源. 但是我的不行(或者说我不会搞...) 因为我是取了数据后存入了写的类中(Model类)
Code:
TestControl tc = new TestControl();
//取试题
List<ProblemModel> problemArray = tc.GetTest(5);
//绑定数据
rptTest.DataSource = problemArray;
rptTest.DataBind();
我原先就是这样手动绑定数据 然后前台用<%# Eval()%>绑定数据的 结果被我妈一顿骂 说我用asp的老方法啥的 说不安全等等云云 反正是被骂得狗血淋头 ;;;悲惨猫 T^T
于是我的前台就改了第一段代码那样, 开始在后台动工 汗啊 我哪懂这些啊 硬是瞎整 查文档啊 跟踪变量看值啊 试了两下 还真给我写出来了;;
Code:
for (int i = 0; i < rptTest.Items.Count; i++)
{
RepeaterItem ri=rptTest.Items[i];
ProblemModel pm=problemArray[i];
Label lblCount = ri.Controls[1] as Label;
lblCount.Text = (i+1).ToString();
Label lblTitle = ri.Controls[3] as Label;
lblTitle.Text = pm.Title;
RadioButton rdobtnA = ri.Controls[5] as RadioButton;
rdobtnA.Text = pm.Ans1;
RadioButton rdobtnB = ri.Controls[7] as RadioButton;
rdobtnB.Text = pm.Ans2;
RadioButton rdobtnC = ri.Controls[9] as RadioButton;
rdobtnC.Text = pm.Ans3;
RadioButton rdobtnD = ri.Controls[11] as RadioButton;
rdobtnD.Text = pm.Ans4;
}
最后的结果就是:
东西出来了 但是我觉得写得实在很挫 效率貌似也不怎么样 不知道有米有更好点的方法 或者有没有更好的控件哇
相关文章推荐
- 详解ASP.NET数据绑定操作中Repeater控件的用法
- ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)
- ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)
- ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)
- ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)
- ASP.NET数据绑定之Repeater控件
- ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)
- ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)
- ASP.Net中通过Jquery前端对Repeater控件绑定的数据进行操作
- asp.net中使用分页控件,并绑定数据到GridView或Repeater
- ASP.NET数据绑定之Repeater控件
- ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)
- Asp.net--数据绑定控件Repeater
- 【Asp.net之旅】--数据绑定控件之Repeater
- 详解ASP.NET数据绑定操作中Repeater控件的用法
- ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)
- ASP.NET Repeater绑定数据并实现分页
- ASP.NET常用数据绑定控件优劣总结
- ASP.NET 2.0 - 数据绑定控件数据异动功能一览表
- ASP.NET数据绑定控件简介