Значение раскрывающегося списка по умолчанию при нажатии кнопки

Я работаю над проектом asp. У меня есть ситуация, когда мне нужно искать файлы и отображать их в gridview. В gridview есть три раскрывающихся списка, моя проблема теперь в том, как я могу показать значение по умолчанию моего раскрывающегося списка на основе набора результатов, возвращаемого, когда я нажимаю кнопку поиска, поскольку я уже установил значение по умолчанию для раскрывающегося списка ("Пожалуйста, выберите ") на границе строки данных. Поскольку при первой загрузке в моем раскрывающемся списке должно отображаться значение «выберите пожалуйста». Большое спасибо за помощь. ниже мой код.

 protected void btnSearch_Click(object sender, EventArgs e)
{
    int uFlag = 0;
    string uploadFlag = this.ddlUploadDate.SelectedValue;
    string fileName = this.txtSearchText.Text;
    string uploadDt = this.txtDate.Text;
    string status = this.ddlStatus.SelectedValue.ToString();

    List<EventFile> fileSearch = new List<EventFile>();
    fileSearch = CoMailAssociationDAL.SearchFile(uFlag, fileName, uploadDt, status);

    gvwAssociation.DataSource = fileSearch;
    gvwAssociation.DataBind();
}

 protected void gvwAssociation_RowDataBound(object sender, GridViewRowEventArgs e)
{
    ListItem Item = new ListItem();
    Item.Text = "Please Select";
    Item.Value = "0";
    Item.Selected = true;

    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DropDownList ddlpool = (DropDownList)e.Row.FindControl("ddlpool");
        DropDownList ddlyear = (DropDownList)e.Row.FindControl("ddlyear");
        DropDownList ddlevent = (DropDownList)e.Row.FindControl("ddlevent");

        ddlpool.DataSource = CoMailAssociationDAL.GetCoBindEvents();
        ddlpool.DataBind();
        ddlpool.Items.Insert(0, Item);

        ddlevent.DataSource = CoMailAssociationDAL.GetCoBindEvents();
        ddlevent.DataBind();
        ddlevent.Items.Insert(0, Item);

        for (int intCount = 2013; intCount <= 2020; intCount++)
        {
            ddlyear.Items.Add(intCount.ToString());   
            ddlyear.SelectedIndex = 1;             
        }
    }
}

person Moccassin    schedule 11.04.2014    source источник


Ответы (2)


Вы можете сделать это, создав условие в событии RowDataBound вашей сетки, взяв одно скрытое поле в шаблоне элемента для значения из базы данных и найдя это как

for (int intCount = 2013; intCount <= 2020; intCount++)
    {
        ddlyear.Items.Add(intCount.ToString());   
        HiddenField result= GridView1.Rows[e.RowIndex].FindControl("hdnpool") as HiddenField;
        if(result!=null)
         ddlyear.SelectedIndex =result.value;
        else
         ddlyear.SelectedIndex = 1;             
    }

В сетке используйте ниже для каждого раскрывающегося списка:

  <asp:TemplateField>
                    <ItemTemplate>
                        <asp:DropDownList ID="ddpool" runat="server"></asp:DropDownList>
                        <asp:HiddenField ID="hdnpool" Value="<%# Eval("PoolColumninDB") %>" runat="server"></asp:HiddenField>
                    </ItemTemplate>
                </asp:TemplateField>
person Janty    schedule 11.04.2014
comment
Спасибо за ответ, но я запутался, мне нужно установить значение по умолчанию для трех раскрывающихся списков (ddlpool, ddlevent, ddlyear) на основе списка, возвращаемого методом SearchFile при событии кнопки поиска. Как я могу этого добиться? Поскольку в моем раскрывающемся списке есть значение по умолчанию для привязанной строки данных. - person Moccassin; 11.04.2014
comment
Вы должны использовать три скрытых поля с выпадающими списками в gridview как - person Janty; 11.04.2014
comment
Привет, прошу прощения, если я слишком о многом спрашиваю, но не могли бы вы показать мне пример? Я новичок в разработке asp. Большое спасибо за помощь. - person Moccassin; 11.04.2014
comment
Я обновляю свой ответ для вас сейчас. Посмотри пожалуйста. - person Janty; 11.04.2014
comment
Большое спасибо за помощь. Сейчас пробую. - person Moccassin; 11.04.2014
comment
вы можете найти значение, которое будет установлено для раскрывающегося списка как значение скрытого поля. Надеюсь, это поможет вам. Пожалуйста, обратитесь к полному описанию выше еще раз. - person Janty; 11.04.2014
comment
Также, если вы все еще не можете найти, дайте мне знать ваш источник aspx и его файл cs. Удачи - person Janty; 11.04.2014

Вы пробовали это

for (int intCount = 2013; intCount <= 2020; intCount++)
    {
        ddlyear.Items.Add(intCount.ToString());   
        ddlyear.SelectedValue= 1;             
    }
person Nayeem Mansoori    schedule 11.04.2014