加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在ListView中加载Databind DropDownList

发布时间:2020-12-16 01:58:25 所属栏目:百科 来源:网络整理
导读:我有一个ListView控件,其中包含ItemTemplate标记内的DropDownList控件. 我正在尝试使用ListView控件的ItemCommand事件中的以下代码将现有列表项加载到DropDownList: DropDownList ddlItem = (DropDownList)e.Item.FindControl("ddlItem");con.Open();SqlCom
我有一个ListView控件,其中包含ItemTemplate标记内的DropDownList控件.
我正在尝试使用ListView控件的ItemCommand事件中的以下代码将现有列表项加载到DropDownList:

DropDownList ddlItem = (DropDownList)e.Item.FindControl("ddlItem");

con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "SELECT ID,Name FROM Items";
SqlDataReader data = cmd.ExecuteReader();
ddlItem.DataSouce = data;
ddlItem.DataTextField = "Name";
ddlItem.DataValueField = "ID";
ddlItem.DataBind();
con.Close();

绑定项目后,我想根据数据库记录选择所选项目.

我错过了什么吗?

解决方法

您应该在ListView的ItemDataBound事件中执行此操作.您将通过e.Item.FindControl(“ddlItem”)在那里找到DropDownList,通过e.Item.DataItem获取该项的基础数据源.如果您不确定类型,请使用调试器.

protected void ListView1_ItemDataBound(Object sender,ListViewItemEventArgs e)
{
    if (e.Item.ItemType == ListViewItemType.DataItem)
    {
        DropDownList ddlItem = (DropDownList) e.Item.FindControl("ddlItem");
        var rowView = e.Item.DataItem as DataRowView;
        int id = (int)rowView["ID"];  // whatever
        // get data from id ...
        //ddlItem.DataSouce = data;
        //ddlItem.DataTextField = "Name";
        //ddlItem.DataValueField = "ID";
        //ddlItem.DataBind();
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读