在gridview中填充下拉列表

我在Gridview中有一个Dropdownlist,我必须显示与每个id相关的记录。这个ID包含10个以上的记录,所以我怎么能显示它们?

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { con.Open(); var ddl = (DropDownList)e.Row.FindControl("DropDownList1"); //int CountryId = Convert.ToInt32(e.Row.Cells[0].Text); SqlCommand cmd = new SqlCommand("select LastName from Profile_Master", con); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); con.Close(); ddl.DataSource = ds; ddl.DataTextField = "LastName"; ddl.DataBind(); } } 

  FillSelect(myDropDownList, "--select--", "0", true); public static void FillSelect(DropDownList DropDown, string SelectItemText, string SelectItemValue, bool includeselectitem) { List obj_PhoneContactlist = getAll(); if (obj_PhoneContactlist != null && obj_PhoneContactlist.Count > 0) { DropDown.DataTextField = "PhoneContactName"; DropDown.DataValueField = "id"; DropDown.DataSource = obj_PhoneContactlist.OrderBy(o => o.PhoneContactName);//linq statement DropDown.DataBind(); if (includeselectitem) DropDown.Items.Insert(0, new ListItem(SelectItemText, SelectItemValue)); } } public static List getAll() { obj_PhoneContactlist = new List(); string QueryString; QueryString = System.Configuration.ConfigurationManager.ConnectionStrings["Admin_raghuConnectionString1"].ToString(); obj_SqlConnection = new SqlConnection(QueryString); obj_SqlCommand = new SqlCommand("spS_GetMyContacts"); obj_SqlCommand.CommandType = CommandType.StoredProcedure; obj_SqlConnection.Open(); obj_SqlCommand.Connection = obj_SqlConnection; SqlDataReader obj_result = null; obj_SqlCommand.CommandText = "spS_GetMyContacts"; obj_result = obj_SqlCommand.ExecuteReader(); //here read the individual objects first and append them to the listobject so this we get all the rows in one list object using (obj_result) { while (obj_result.Read()) { obj_PhoneContact = new PhoneContact(); obj_PhoneContact.PhoneContactName = Convert.ToString(obj_result["PhoneContactName"]).TrimEnd(); obj_PhoneContact.PhoneContactNumber = Convert.ToInt64(obj_result["PhoneContactNumber"]); obj_PhoneContact.id = Convert.ToInt64(obj_result["id"]); obj_PhoneContactlist.Add(obj_PhoneContact); } } return obj_PhoneContactlist; } 

我这样做是为了让我的数据库中的手机触点进入下拉列表,您可以根据需要更改存储过程和值。

希望这会有所帮助:D

我刚刚遇到这个问题。 我们解决这个问题的方法是先获取DropDownLists UniqueID。 这基本上是一个客户端ID。 该ID内部是对从中选择的GridView行的引用。 唯一的问题是它似乎在行数上加2。 因此,如果您选择第1行的DropdownList,则唯一ID将为您提供第3行的引用。 所以:

获取唯一ID>拆分它然后您需要获取行>使用行号来获取所需的值。