我了個去 咱其實米有具體學過asp.net... 都是平時慢慢積累的 寫前臺超累 完全的前臺白癡啊;;;;; 這次遇到一個問題 整死我了 先說說我原來的寫法吧 這個寫法讓我被媽媽罵了頓.; ;;
首先 前臺代碼:
- <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>
原來寫法類似於這段(由於被我刪了,我就不重寫遍了)
- <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類)
- TestControl tc = new TestControl();
- //取試題
- List<ProblemModel> problemArray = tc.GetTest(5);
- //綁定數據
- rptTest.DataSource = problemArray;
- rptTest.DataBind();
我原先就是這樣手動綁定數據 然後前臺用<%# Eval()%>綁定數據的 結果被我媽一頓罵 說我用asp的老方法啥的 說不安全等等云云 反正是被罵得狗血淋頭 ;;;悲慘貓 T^T
於是我的前臺就改了第一段代碼那樣, 開始在後臺動工 汗啊 我哪懂這些啊 硬是瞎整 查文檔啊 跟蹤變量看值啊 試了兩下 還真給我寫出來了;;
- 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;
- }
最後的結果就是:
東西出來了 但是我覺得寫得實在很挫 效率貌似也不怎麼樣 不知道有米有更好點的方法 或者有沒有更好的控件哇