绑定前修改sqldatasource选中的数据?

Posted

技术标签:

【中文标题】绑定前修改sqldatasource选中的数据?【英文标题】:Modify sqldatasource selected data before binding? 【发布时间】:2011-06-03 23:02:31 【问题描述】:

    如何在绑定之前访问我的 sqldatasource 选择的数据源以进行修改和添加例如新的数据列??

    执行这些修改的最佳位置在哪里?

    我猜 SqlDataSource1_Selected 是正确的地方,但我不知道如何?

---------更新---------

我找到了如何访问所选数据以显示总记录,但我的问题仍未解决

protected void Page_Load(object sender, EventArgs e)

    if (!IsPostBack)
    
        DataTable dt = ((DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty)).Table;
        LabelTotal.Text = string.Format("0 items found", dt.Rows.Count);
    

【问题讨论】:

请注意,这样做会导致 SELECT 命令运行两次(在通常的数据绑定中和在您的代码中再次显式调用它) - 如果查询繁重,这将是低效的。 【参考方案1】:

如果您在 .cs 页面上使用自定义代码绑定 GridView 会更好,而不是使用 SqlDataSource。

在 .cs 页面上,您可以在绑定 gridview 之前使用 datatable 执行您的操作。

【讨论】:

谢谢,目前我正在按照您在一些更复杂的页面中所说的做,现在我需要对一些更简单的报告页面进行修改,我以简单的方式仅使用 sqldatasource 和 objectdatasources

以上是关于绑定前修改sqldatasource选中的数据?的主要内容,如果未能解决你的问题,请参考以下文章

vs2017关于SqlDataSource无法使用参数控件绑定的问题

数据绑定控件简介

c#datagridview删除选中行,并删除SQL数据库中对应行

GridView如果被分页了,怎么获取所有页某一列的所有值。我用了SqlDataSource去绑定了数据源。

SqlDataSource 是不是始终保持数据库连接打开?

在 HTML 表格中显示 SqlDataSource 数据(DataTables 插件)