您的位置:首页 > 编程语言 > ASP

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;

}

最后的结果就是:

东西出来了 但是我觉得写得实在很挫 效率貌似也不怎么样 不知道有米有更好点的方法 或者有没有更好的控件哇
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: