Repeater 绑定下拉列表
1. 這幾天在做一個項目用到了Repeater,這個在網上說的可能不太多。因本人用到Repeater中綁定下拉列表實現方式如下。
?在repeater上抓取控件及進行數據綁定大致分為兩種:
(一種情況為:)
第一種在數據手動綁定后用for循環來查找下拉列表控件(其它控件原理一樣)
代碼如下:
前臺代碼大致為:
<asp:Repeater ID="rptList" runat="server" OnItemDataBound="rptList_ItemDataBound">
<HeaderTemplate>
??? <table width="100%" border="0" cellspacing="0" cellpadding="0" class="msgtable">
????? <tr>
?????????? .
.
.
????????? <th width="12%" align="left">下拉列表</th>
?????????? .
.
.
????? </tr>
??? </HeaderTemplate>
<ItemTemplate>
????? <tr>
????????? .
.
.
?????????<td><asp:DropDownList ID="ddlManager" runat="server" CssClass="select required">??????????????????????? </asp:DropDownList></td>
????????? .
.
.
??????? </tr>
??? </ItemTemplate>
? </asp:Repeater>
后臺代碼:
?private void DateBindView()
??? {
??????? DataSet ds =?結果集合獲得的方法,返回來的數據為DataSet類型。
?? // rptList為前臺repeater的ID
????????rptList.DataSource = ds;
??????? rptList.DataBind();
?????? //? 定義一個列表
??????? DropDownList dllExample;
??????? for (int j = 0; j < this.rptContent.Items.Count; j++)
??????? {
??????????? dllExample= (DropDownList)this.rptContent.Items[j].FindControl("ddlManager");
??????????? dllExample.DataSource = BLL.StateInfoManager.GetList().Tables[0].DefaultView;
??????????? dllExample.DataTextField = "綁定的下拉列表名稱";
??????????? dllExample.DataValueField = "綁定下拉列表的ID";
??????????? dllExample.DataBind();
??????????? DataRowView rowv = (DataRowView)this.rptContent.Items[j].DataItem;
??????????? //設置初始項
??????????? dllExample.Items.Add(new ListItem("-選擇-", ""));
???????????//獲到當前列的狀態ID用于綁定下拉列表
??????????? dllExample.SelectedValue = ds.Tables[0].Rows[j][綁定的下拉列表ID].ToString();
????????? }
??? }
第一種方法就寫完了。
第二種方法:
temDataBound方法中進行查找下拉列表,并進行當前數據的綁定.
前臺還是如上:不過多了一個方法為:temDataBound 既:?OnItemDataBound="rptList_ItemDataBound"
后臺有所不同代碼如下:
?protected void rptList_ItemDataBound(object sender, RepeaterItemEventArgs e)
??? {
??????? if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
??????? {
??????????????? DropDownList dllExample= (DropDownList)e.Item.FindControl("ddlManager");
????????
??????????????? dllExample.DataTextField = "Remark";
??????????????? dllExample.DataValueField = "stateid";
??????????????? dllExample.DataSource = 獲得的數據集合。(集合DATAset)
??????????????? dllExample.DataBind();
??????????????? dllExample.Items.Add(new ListItem("-Choose-", ""));
??????????????? //找到分類Repeater關聯的數據項
??????????????? DataRowView rowv = (DataRowView)e.Item.DataItem;//獲取當前項行數據再去訪問那一列.注意坐標索引是從0開始
??????????????? dllExample.SelectedValue =rowv[綁定的下拉列表ID列號].ToString();
??????? }
??? }
?????
希望對大家有所幫助。
轉載于:https://www.cnblogs.com/northeastTycoon/archive/2012/10/23/Repeater%E7%BB%91%E5%AE%9A%E4%B8%8B%E6%8B%89%E5%88%97%E8%A1%A8.html
總結
以上是生活随笔為你收集整理的Repeater 绑定下拉列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u-boot-2012.07 for F
- 下一篇: 算法之动态规划——编辑距离问题