您的位置:首页 > 移动开发 > Objective-C

相于Repeater中使用绑定下拉列表一事

2009-12-04 12:57 274 查看

关于其它控件绑定这一块网上有很多,但发现repeater这一块很少,结合网上知识总结如下:

    1,在repeater上抓取控件及进行数据绑定;

      一般是在数据绑定后,或着是在ItemDataBound事件中来处理,下面介绍两种方法:

 

       第一种在数据手动绑定后用for循环来查找下拉列表控件(其它控件原理一样),

     
private void DateBindView()
{
DataSet ds = new DataSet();
ds = BLL.UserInfoManager.GetList();
rptContent.DataSource = ds;
rptContent.DataBind();
DropDownList dllOperator;
for (int j = 0; j < this.rptContent.Items.Count; j++)
{
dllOperator = (DropDownList)this.rptContent.Items[j].FindControl("dllOperator");
dllOperator.DataSource = BLL.StateInfoManager.GetList().Tables[0].DefaultView;
dllOperator.DataTextField = "Remark";
dllOperator.DataValueField = "stateid";
dllOperator.DataBind();

DataRowView rowv = (DataRowView)this.rptContent.Items[j].DataItem;
//设置初始项
dllOperator.Items.Add(new ListItem("-Choose-", ""));
dllOperator.SelectedValue = ds.Tables[0].Rows[j][4].ToString();//获到当前列的状态ID用于绑定下拉列表
}
}


    

     第二种有ItemDataBound方法中进行查找下拉列表,并进行当前数据的绑定.这个地方很关键!

   

    
protected void rptContent_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DropDownList dllOperator = (DropDownList)e.Item.FindControl("dllOperator");

dllOperator.DataTextField = "Remark";
dllOperator.DataValueField = "stateid";
dllOperator.DataSource = BLL.StateInfoManager.GetList().Tables[0].DefaultView;
//BLL.StateInfoManager.GetList().Tables[0].DefaultView;
dllOperator.DataBind();
dllOperator.Items.Add(new ListItem("-Choose-", ""));
//找到分类Repeater关联的数据项
DataRowView rowv = (DataRowView)e.Item.DataItem;//获取当前项行数据再去访问那一列.注意坐标索引是从0开始

dllOperator.SelectedValue =rowv[4].ToString();
}
}


 

 

     而前台只需一句代码就OK了

        <asp:DropDownList ID="dllOperator" runat="server"></asp:DropDownList>

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dataset object server asp