开发者

dropdownlist in footer row of gridview being clear on postback

I am using a dropdownlist in foote开发者_运维技巧r row of gridview(ASP.Net) and I fill that on rowdatabound event,first time it works fine but when the form is postbacked,dropdown gets cleared.

It can be solved by refilling it on each postback,but I want that only single time code binding call fulfill my need, means is there any way to stop from being null on postback.

looking for your kind solutions and suggestions Thnx in advance......

Supriya

Code:

protected void gvProjects_RowDataBound(object sender, GridViewRowEventArgs e) {

    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;
    }
}

It's called whenever the grid is binded,can it be avoided.


With this code you will avoid filling the dropdownlist located in the gridview footer in each rowdatabound:

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

As you can see, the rowdatabound will be only executed on the header and normal rows but not in the footer.

Hope this helps!


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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜