Заполните выпадающий список в сетке

У меня есть Dropdownlist в Gridview, и я должен показать записи, связанные с каждым идентификатором. И идентификатор содержит более 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();

            }
        }
 Ahmad24 окт. 2012 г., 07:42
ты пытался назначитьddl.DataValueField в другой столбец, как ID?
 chandra sekhar24 окт. 2012 г., 08:05
Нет, я не назначен так, но какая польза?

Ответы на вопрос(2)

где я работаю. Наш способ обойти эту проблему - сначала получить уникальный идентификатор DropDownLists. Это в основном идентификатор клиента. Внутри этого идентификатора находится ссылка на строку GridView, из которой он был выбран. ЕДИНСТВЕННАЯ ПРОБЛЕМА заключается в том, что она добавляет 2 к числу строк. Поэтому, если вы выберете DropdownList строки 1, уникальный идентификатор приведет вас к ссылке на 3-й ряд. Так:

Получите уникальный идентификатор> Разделите его, однако вам нужно получить строку> используйте номер строки, чтобы получить нужные значения.

        FillSelect(myDropDownList, "--select--", "0", true);
        public static void FillSelect(DropDownList DropDown, string SelectItemText, string SelectItemValue, bool includeselectitem)
        {
            List<PhoneContact> 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<PhoneContact> getAll()
        {

        obj_PhoneContactlist = new List<PhoneContact>();
        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

 Raghurocks24 окт. 2012 г., 08:20
Вы должны изменить его в хранимой процедуре, я использовал spS_GetMyContacts в том, что я использовал оператор, чтобы получить все контакты, вместо того, чтобы вы должны получить значения, основанные на идентификаторе, меняется только один оператор
 Raghurocks24 окт. 2012 г., 08:44
Вы можете изменить его с помощью команды в соответствии с вашими требованиями
 chandra sekhar24 окт. 2012 г., 08:18
Но как получить записи, связанные с каждым идентификатором ??
 chandra sekhar24 окт. 2012 г., 08:29
Я не использую сохраненный процесс для этого, и как я могу получить записи в соответствии с идентификатором пользователя ??
 Raghurocks24 окт. 2012 г., 08:21
чтобы получить значения в соответствии с идентификатором, вы даже можете отправить текущий идентификатор в качестве одного из параметров и получить значения в соответствии с идентификатором

Ваш ответ на вопрос