GridView中操作DropDownList列获得其所在的行信息

using System.Collections.Generic;

 

public partial class Default3 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {

            //必须放置在!IsPostBack中,否则会因为DropDownList的AutoPost而清空List
            List<Mapping> mapping = new List<Mapping>();
            ViewState["MAPPING"] = mapping;
        }
    }

 

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList ddl=(DropDownList)sender;

        List<Mapping> mapping = (List<Mapping>)ViewState["MAPPING"];
        var p = from u in mapping where u.ControlID==ddl.ClientID select u ;

        //得到表的ID

        //p.First().DatabaseID;
    }

 

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");

            List<Mapping> mapping = (List<Mapping>)ViewState["MAPPING"];
            mapping.Add(new Mapping(e.Row.Cells[0].Text.Trim(),ddl.ClientID));

            //假设e.Row.Cells[0].Text.Trim()是表记录的ID

            //将DropDownList的ClientID和表的ID关联
        }
    }

 

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        List<Mapping> mapping = (List<Mapping>)ViewState["MAPPING"];
        mapping.Clear();
    }

 

    protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
        List<Mapping> mapping = (List<Mapping>)ViewState["MAPPING"];
        mapping.Clear();
    }
}

 

[Serializable]
class Mapping
{
    private string databaseID;
    private string controlID;

    public Mapping(string DatabaseID,string ControlID)
    {
        databaseID = DatabaseID;
        controlID = ControlID;
    }

    public string  DatabaseID { get{return databaseID; }  }
    public string ControlID { get { return controlID; } }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值