c# - 删除 RadGrid 中的第 11 行使其变为空白

标签 c# asp.net telerik radgrid

我有一个 Telerik RadGrid。我正在使用一种方法填充网格。我启用了分页属性。我使用 ItemTemplate-->ImageButton 来删除和编辑选项。我已将页面大小设置为 10。页面加载时间正常并填充网格。插入第 11 行后开始分页,将在下一页显示一条记录。但是当我删除第 11 行时,网格变为空白。我已经使用数据集来绑定(bind)记录。

radgrid.DataBind();
dsDataset.Dispose();

但是它的item.count是0,这是什么原因?

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        if (!IsPostBack)
        {
            PopulatePackage();
        }
    }
    catch (Exception ex)
    {
        lblMessage.Text = objUtl.GetErrorMessage(ex, this);
        lblMessage.Visible = true;

protected void gvPackage_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
    try
    {
        SqlHelper objSQL = new SqlHelper();
        DataSet dsPackage = new DataSet();
        dsPackage = objSQL.ExecuteDataset("AL_PackageType_List_Retrieve", objUtl.NumericEntry(Session["LocationId"].ToString()));
        gvPackage.DataSource = dsPackage.Tables[0];
        dsPackage.Dispose();
        //PopulatePackage();
    }
    catch (Exception ex)
    {
        lblMessage.Text = objUtl.GetErrorMessage(ex, this);
        lblMessage.Visible = true;
    }
}

private void PopulatePackage()
{
    try
    {
        lblMessage.Text = string.Empty;
        SqlHelper objSQL = new SqlHelper();
        DataSet dsPackage = new DataSet();
        dsPackage = objSQL.ExecuteDataset("AL_PackageType_List_Retrieve", objUtl.NumericEntry(Session["LocationId"].ToString()));
        gvPackage.DataSource = null;
        gvPackage.DataSource = dsPackage.Tables[0];
        gvPackage.DataBind();
        //dsPackage.Dispose();
        if (gvPackage.Items.Count <= 0)
        {
            lblMessage.Text = "No Package Details Found...";
            gvPackage.Visible = false;
        }
        else
        {
            gvPackage.Visible = true;
        }
    }
    catch (Exception ex)
    {
        lblMessage.Text = objUtl.GetErrorMessage(ex, this);
        lblMessage.Visible = true;
    }
}

最佳答案

好的,据我所知,您有一个 radgrid,其中允许分页并将页面大小设置为 10。插入第 11 条记录后,将显示第 11 条记录的新页面。当第 11 条记录被删除时,您看到的是一个空白页面,而不是显示记录从 1 到 10 的页面。我希望我就在这里。

无论如何。我想问题是 Radgrid 没有您正在查看的页面的数据。

RadGrid 中有一个名为 NeedDataSource 的事件。只要 RadGrid 需要显示数据,就会触发此事件。您可以在此事件中调用绑定(bind)逻辑,看看它是否适合您。

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

private void BindGrid()
{
    RadGrid1.DataSource = "BindingSource";
    RadGrid1.DataBind();
}

protected void RadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
    BindGrid();
}

看看这是否适合你..

关于c# - 删除 RadGrid 中的第 11 行使其变为空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4181905/

相关文章:

c# - GridView ASP.NET C# 中的丑陋时间格式

asp.net - 将gridview的复选框与数据库的整数数据字段绑定(bind)

c# - 使用 Windows.Security.Authentication 成功进行身份验证后的空数据

c# - 'LINQ to Entities 不支持 LINQ 表达式节点类型 'Invoke'' 当 lambda 作为参数传递时,但不直接使用时

c# - URI 字符串转换为带有变音符号的德语字符串

c# - 获取 ASP.NET Core 1 中的所有缓存

javascript - 如何获得选定的单选按钮 telerik?

c# - 系统.Web.UI.ViewStateException : Invalid viewstate

c# - 如果所有行数据为空隐藏列

c# - 将 asp.net C# 变量分配给 javascript 数组