DataList中DropDownList如何触发它的SelectedIndexChanged事件

我想在DataList中嵌套DropDownList大家都会了,就在DataList1_ItemDataBound中进行绑定就行了。下面是代码

  1. if (e.Item.ItemType == ListItemType.Item)
  2.             {
  3.                 DropDownList ddl = (DropDownList)e.Item.FindControl("ddl1");
  4.                 OleDbConnection cn = new OleDbConnection(ConnectionString);
  5.                 cn.Open();
  6.                 cn1 = new OleDbConnection(ConnectionString);
  7.                 cn1.Open();
  8.                 OleDbCommand cmd = new OleDbCommand("select * from Detail", cn);
  9.                 OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  10.                 ddl.DataSource = dr;
  11.                 ddl.DataTextField = "DName";
  12.                 ddl.DataValueField = "id";
  13.                 ddl.DataBind();
  14.             }

如果我们想触发DropDownList的SelectedIndexChanged怎么办呢。其实很简单,在前台页面,把datalist进入编辑状态。也就是编辑模板。就会看见DropDownList了。这时双击它就出现SelectedIndexChanged事件,可是属性菜单中无法找到AutoPostBack,没关系,我们在前台,给它加上就行了。AutoPostBack = "true"
在SelectedIndexChanged事件中,你可以做你想做的事了。
可是有一点,如果我想查看一下,我选择是什么怎么呢,这里不是有一个sender吗,我们对它处理就行了

  1. protected void ddl1_SelectedIndexChanged(object sender, EventArgs e)
  2.         {
  3.             Response.Write(((DropDownList)sender).SelectedValue.ToString());
  4.             //如果你想得到我是哪行进行改变。哪么就得进行这样取,这里说明一点。这个方法,是群里一个兄弟提出的,同时也给出了代码。
  5.            DropDownListrbl = (DropDownList)sender;
                TableCell cell = (TableCell)(rbl.Parent);
                GridViewRow gr = (GridViewRow)(cell.Parent);
                int id = Convert.ToInt32(this.DataList1.DataKeys[gr.RowIndex].Value.ToString());
  6.         }

现在试一下,是不是很爽

 

 

 

 

 

你可能感兴趣的:(DataList中DropDownList如何触发它的SelectedIndexChanged事件)