Member 11918737 Ответов: 2

Как заполнить выпадающий список в gridview


я пытаюсь заполнить выпадающий список в GridView

Что я уже пробовал:

у меня есть этот класс для вызова StoredProcedure :

публичный класс DropDownList_DataAccessLayer
{
общественная статический недействительным языка DDL(dropdownlist с ДДЛ строку имя процедуры, объектов sqlparameter SPParameter, строки DDLText, DDLValue строку, строку в формате txt)
{
строка CS = ConfigurationManager.ConnectionStrings ["DBCS"]. ConnectionString;
using (SqlConnection CON = new SqlConnection(CS))
{
Команда sqlcommand команду cmd = новый sqlcommand, который();
CMD = CON.CreateCommand();
CMD. CommandType = CommandType.Хранимая процедура;

if (SPParameter != null)
{
УМК.Параметры.Добавить(SPParameter);
}

УМК.Подключение = кон;
CMD. CommandText = ProcedureName;
Кон.Открыть();
SqlDataReader RD = CMD. ExecuteReader();

Инструкции DDL.Источник данных = РД;
DDl. DataTextField = DDLText;
DDl. DataValueField = DDLValue;

Инструкции DDL.Привязку();

ListItem li = new ListItem ("Пожалуйста, выберите" + TXT, " -1");
ЯОД.Предметы.Вставить (0, li);
РД.Рядом();
ПРОТИВ.Закрывать();
}
}
}

в Пейджлоаде у меня есть вот это:

protected void Page_Load(отправитель объекта, EventArgs e)
{
если (! IsPostBack)
{
BindGridViewData();
}
}

частный недействительными BindGridViewData()
{
int CenterCode = конвертировать.ToInt32 (Запрос.Файл Querystring["Center_Code"]);
Управления gridview1.Источник Данных = ProjectDataAccessLayer.GetAllProjects (CenterCode);
Управления gridview1.Привязку();
}

в GridView1_RowDataBound у меня есть это :

protected void GridView1_RowDataBound(отправитель объекта, GridViewRowEventArgs e)
{
DropDownList ActiveCenterDDL = (DropDownList)e. Row.FindControl("ddlEditCenters");
DropDownList NewActiveCenterDDL = (DropDownList)e. Row.FindControl("ddlNewCenters");

DropDownList_DataAccessLayer. DDL(ActiveCenterDDL, "Get_ActiveCenters", null, "CenterName"," CenterCode"," Center"); / / для
DropDownList_DataAccessLayer.DDL(NewActiveCenterDDL, "Get_ActiveCenters", null, "CenterName", "CenterCode", " Center");

в aspx у меня есть это :

<asp:TemplateField HeaderText= "Centers" SortExpression= "Center_Name">

& lt;itemtemplate>
&ЛТ;АСП:метка идентификатор="lblCenterName" атрибут runat="сервер" текст=в'<%# Персонализация("Center_Name") %&ГТ; в'>


< edititemtemplate>
&ЛТ;как ASP:dropdownlist с ИД="ddlEditCenters" CssClass="gvedit" атрибут runat="сервер" ValidationGroup="EditRow"&ГТ;
&ЛТ;как ASP:RequiredFieldValidator CssClass="валидатор" идентификатор="ddlEditCentersValidator" атрибут runat="сервер" ControlToValidate="ddlEditCenters" сообщение об ошибке="вы не выбрали центр" InitialValue="-1" ValidationGroup="редактировать"и GT;*


& lt;footertemplate>
&ЛТ;как ASP:dropdownlist с ИД="ddlNewCenters" CssClass="gvfooter" атрибут runat="сервер"и GT;

Suvendu Shekhar Giri

В чем здесь проблема?
Разве это дает какую-то ошибку?

2 Ответов

Рейтинг:
2

Srinivas Kalabarigi

Что-то вроде приведенного ниже примера:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        if ((e.Row.RowState & DataControlRowState.Edit) > 0)
        {
            DropDownList ActiveCenterDDL= (DropDownList)e.Row.FindControl("ddlEditCenters");
            //bind dropdown-list
            DataTable dt = con.GetData("Select category_name from category");
            ActiveCenterDDL.DataSource = dt;
            ActiveCenterDDL.DataTextField = "category_name";
            ActiveCenterDDL.DataValueField = "category_name";
            ActiveCenterDDL.DataBind();

DropDownList NewActiveCenterDDL= (DropDownList)e.Row.FindControl("ddlEditCenters");
            //bind dropdown-list
            DataTable dt = con.GetData("Select category_name from category");
            NewActiveCenterDDL.DataSource = dt;
            NewActiveCenterDDL.DataTextField = "category_name";
            NewActiveCenterDDL.DataValueField = "category_name";
            NewActiveCenterDDL.DataBind();

            DataRowView dr = e.Row.DataItem as DataRowView;
            //ddList.SelectedItem.Text = dr["category_name"].ToString();
            ActiveCenterDDL.SelectedValue = dr["category_name"].ToString();
        }
    }
}


Рейтинг:
1

Vincent Maverick Durano

Если я правильно понял, вы хотели заселить свой DropDownList изнутри EditItemTemplate Если это так, то эта статья должна помочь вам в этом: ASP.NET GridView: реализация каскадного выпадающего списка в режиме редактирования[^]