1

我正在做一个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;             
        }
    }
}
4

2 回答 2

1

您可以通过在网格 RowDataBound 事件中创建一个条件来做到这一点,方法是在 itemtemplate 中获取一个隐藏字段以获取数据库中的值并找到它作为

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>
于 2014-04-11T11:42:50.617 回答
-2

你试试这个

for (int intCount = 2013; intCount <= 2020; intCount++)
    {
        ddlyear.Items.Add(intCount.ToString());   
        ddlyear.SelectedValue= 1;             
    }
于 2014-04-11T11:40:12.823 回答