У меня есть gridview, который я использую для обновления базы данных. Сетка состоит из трех столбцов. Первый столбец - это идентификационный номер. Вторая колонка - это категория (BU). Конечный столбец - поле комментариев. У меня есть настройка редактирования, позволяющая редактировать второй и третий столбцы. Во втором столбце должен быть выпадающий список для выбора пользователем. Я делаю это хорошо. Мой клиент добавил к этому другую группу, поэтому запрос, который заполняет раскрывающийся список, необходимо изменить, чтобы определить, является ли клиент cust A или cust B. Я основываю выпадающий список на представлении в базе данных. Представление имеет два столбца Cust, BU. Я могу получить cust из исходного запроса, который заполняет gridview. Я попытался установить его как DataKey, но я не уверен, как ссылаться на него.Фильтр dropdownlist в gridview на основе параметра формы
Вот код для раскрывающегося списка в gridview. Объект привязан к GridView с использованием onrowdatabound = «RowDataBound»
Вот код RowDataBound за:
protected void RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow && gvSummary.EditIndex == e.Row.RowIndex)
{
DropDownList dlBU = (DropDownList)e.Row.FindControl("dlBU");
string query = "select distinct Unit from vw_BU";
SqlCommand cmd = new SqlCommand(query);
dlBU.DataSource = GetData(cmd);
dlBU.DataTextField = "Unit";
dlBU.DataValueField = "Unit";
dlBU.DataBind();
dlBU.Items.FindByValue((e.Row.FindControl("lblBU") as Label).Text).Selected = true;
}
}
lblBU так, что DropDownList сохранит исходное значение, если таковые имеются. Я добавил значение null в базу данных для каждого клиента, так что, если значение не было введено, я избегаю ошибки.
Так что в конечном итоге я хочу, чтобы выделить отдельный блок из vw_BU, где cust = «Tim», и я бы получил Tim от datakey в исходном select-заявлении.
Надеюсь, это имеет смысл.
Вы сказали, что вы можете получить Cust из исходного запроса выбора, который заполняет GridView. Пожалуйста, покажите полный запрос, который используется для заполнения GridView. –
Я использую BindData() для обновления gridview. Вот код для функции private Void BindData() { string query = "select [AnnotationNumber], [BusinessUnit] как Unit, AnnotationComments, cust from vw_GridviewSource"; SqlCommand cmd = новый SqlCommand (запрос); gvSummary.DataSource = GetData (cmd); gvSummary.DataBind(); ' } –
Сброс непосредственно перед тем, как из vw_GridviewSource я получаю имя клиента.Он будет согласован в рамках одного gridview, потому что gridview основан на двух параметрах. –