gridview的页脚行中的下拉列表在回发时清晰显示

时间:2011-09-23 09:52:14

标签: c# asp.net

我在dropdownlistgridview)的页脚行中使用了ASP.Net,并在rowdatabound事件中填写了 try { if (gvProjects.Rows.Count > 0 && e.Row.RowIndex != -1) { string proj_Id = Convert.ToString(gvProjects.DataKeys[e.Row.RowIndex].Value); if (e.Row.RowType == DataControlRowType.DataRow) { DropDownList ddlProject = (DropDownList)e.Row.FindControl("ddlProject"); if (ddlProject != null && ddlProject.Items.Count == 0) { objMaster.FillProjects(ddlProject); ddlProject.SelectedValue = proj_Id; } } } } catch (Exception excep) { lbl_msg.Text = excep.Message; } } ,第一次它工作正常但是当表单是postbacked,dropdown被清除。

可以通过在每个回发上重新填充它来解决,但我希望只有单次代码绑定调用满足我的需要, 表示有没有办法在回发时停止为空。

寻找您的解决方案和建议 Thnx提前......

Supriya

代码:

protected void gvProjects_RowDataBound(object sender,GridViewRowEventArgs e)     {

{{1}}

只要网格绑定就会调用它,可以避免它。

2 个答案:

答案 0 :(得分:0)

  protected void Page_Load(object sender, EventArgs e)
    {            
        if (!IsPostBack)
        {               
            FillDropdown();
        }
    }

答案 1 :(得分:0)

使用此代码,您将避免在每个rowdatabound中填充位于gridview页脚中的下拉列表:

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType != DataControlRowType.Footer)
        {
            //do the binding for the normal rows
        }
    }

如您所见,rowdatabound将仅在页眉和普通行上执行,但不在页脚中执行。

希望这有帮助!