ASP.Net gridview在回发时被清除 [英] ASP.Net gridview getting cleared on postback

查看:68
本文介绍了ASP.Net gridview在回发时被清除的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我有一个可编辑的gridview,点击加载数据按钮就可以填充。



为了在网格中保存已编辑的值,在同一页面上还有另一个名为保存的按钮。



点击保存按钮,页面被回发并且gridview值被清除,因此我无法保存最新数据。



我正在使用ASP.Net 4.0



我们非常感谢任何帮助。



.cs文件代码 -



Hi,

I am having a editable gridview which is populated on the click of "Load Data" button.

For saving the edited values in the grid, there is another button called "Save" on the same page.

On clicking save button, the page is getting posted back and gridview values are getting cleared, due to which i am not able to save the latest data.

I am working on ASP.Net 4.0

Any help would be greatly appreciated.

Code of .cs file --

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

protected void btnLaunchTour_Click(object sender, EventArgs e)
{
    try
    {
        ///Code for populating Grid on Launch Button Click
        populateGrid(TourLaunchDAL.LaunchTour(0, Convert.ToInt32(ddlProduct.SelectedValue), Convert.ToInt32(txtNoOfTours.Text), UserDetails.UserID));
    }
    catch (Exception ex)
    {
        ErrorMessage = ex.Message;
    }

}

protected void populateGrid(List<TourLaunchBAL> lstTourSchedule)
{
    grdTourSchedule.DataSource = lstTourSchedule;
    grdTourSchedule.DataBind();
}

protected void populateDropDown()
{
    ListItem lstItem = new ListItem("Select", "0");

    ddlProduct.AppendDataBoundItems = true;
    ddlProduct.Items.Add(lstItem);

    ddlProduct.DataSource = CacheMaster.getProductsForLaunch();
    ddlProduct.DataTextField = "ProductName";
    ddlProduct.DataValueField = "ProductID";
    ddlProduct.DataBind();
}
protected void grdTourSchedule_RowCommand(object sender, GridViewCommandEventArgs e)
{

}
protected void grdTourSchedule_RowDataBound(object sender, GridViewRowEventArgs e)
{

}

protected void btnSave_Click(object sender, EventArgs e)
{
    foreach (GridViewRow gvRow in grdTourSchedule.Rows)
    {

    }
}











谢谢






Thanks

推荐答案

管理通过在代码中进行以下更改来解决问题 -



prote cted void populateGrid(List< tourlaunchbal> lstTourSchedule)

{

grdTourSchedule.EnableViewState = true;



grdTourSchedule.DataSource = lstTourSchedule;

grdTourSchedule.DataBind();

ViewState [lstTourSchedule] = lstTourSchedule;

//grdTourSchedule.EnableViewState = true;



}

protected void Page_Load(object sender,EventArgs e)

{

if(!IsPostBack) )

{

populateDropDown();

}



if(grdTourSchedule .Rows.Count == 0)

{

grdTourSchedule.DataSource =(List< tourlaunchbal>)ViewState [lstTourSchedule];

grdTourSchedule.DataBind();

}

}

现在我也可以修改行。



感谢所有帮助
Managed to Solved the issue by making the following changes in the code--

protected void populateGrid(List<tourlaunchbal> lstTourSchedule)
{
grdTourSchedule.EnableViewState = true;

grdTourSchedule.DataSource = lstTourSchedule;
grdTourSchedule.DataBind();
ViewState["lstTourSchedule"] = lstTourSchedule;
//grdTourSchedule.EnableViewState = true;

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

if (grdTourSchedule.Rows.Count == 0)
{
grdTourSchedule.DataSource = (List<tourlaunchbal>)ViewState["lstTourSchedule"];
grdTourSchedule.DataBind();
}
}
Now i am able to get modified rows also.

Thanks for all the help


这篇关于ASP.Net gridview在回发时被清除的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆