从 SqlDataSource 或 GridView 读取数据

发布于 2024-10-09 15:14:28 字数 216 浏览 0 评论 0原文

我在 Web 表单上有 SqlDataSource 和 GridView。 GridView.DataSourceID = mySqlDataSource。

当我调用 myGridView.DataBind() 时,所有数据都成功绑定到页面上。

如何从 mySqlDataSource 或 myGridView 对象中读取已获取的数据作为 DataTable 或 DataView?谢谢

I have SqlDataSource and GridView on web form. GridView.DataSourceID = mySqlDataSource.

When I call myGridView.DataBind(), all data successfully bind on the page.

How is it possible to read already got data from mySqlDataSource or myGridView objects as DataTable or DataView? Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏末的微笑 2024-10-16 15:14:28

可以使用Gridview控件的FindControl属性读取GridView中的数据。例如,用于读取网格中复选框列中设置的值。

    for (i = 0; i < GridView1.Rows.Count; i++) 

{

            CheckBox chk = (CheckBox)GridView1.Rows[i].FindControl("checkbox1");

            //here code for using value captured in chk 
}

The data in the gridview can read by using FindControl property of Gridview control. For example, for reading values set in the Checkbox column in the grid.

    for (i = 0; i < GridView1.Rows.Count; i++) 

{

            CheckBox chk = (CheckBox)GridView1.Rows[i].FindControl("checkbox1");

            //here code for using value captured in chk 
}
浮世清欢 2024-10-16 15:14:28

如果您的数据集不是很大,您可以将其存储在 Session 中,将 GridView 绑定到 Session 数据,然后重新在其他 Web 对象中使用 Session 数据。

然后你的代码看起来像这样(你必须原谅任何小的不准确之处——我现在离开了我的开发框):

protected override OnInit(object sender, EventArgs e)
{
    base.OnInit();

    if (Page.IsPostback == false)
    {
        SetSessionData();
    }
    //
    // Set your GridView, DataTable, DataView, etc. events here.
    //
}

void SetSessionData();
{
        List<YourDataBoundObject> myDataBoundObject = GetYourDataBoundObject(); // Or Collection<T>, IEnumerable<T>, etc.
        Session["data"] = myDataBoundObject;
}

void YourGridView_Load(object sender, EventArgs e)
{
    BindYourGridView();
}

void BindYourGridView()
{
    YourGridView.DataSource = GetSessionData();
    YourGridView.DataBind();
}

List<YourDataBoundObject> GetSessionData()
{
    return (List<YourDataBoundObject>) Session["data"];
}

void YourDataTable_Load(object sender, EventArgs e)
{
    BindYourDataTable();
}

void BindYourDataTable()
{
    YourDataTable.DataSource = GetSessionData();
    YourDataTable.DataBind();
}

Provided your data set isn't gigantic, you could store it in the Session, bind your GridView to the Session data, and then re-use the Session data in your other web objects.

Your code would then look something like this (you'll have to forgive any minor inaccuracies -- I'm away from my development box at the moment):

protected override OnInit(object sender, EventArgs e)
{
    base.OnInit();

    if (Page.IsPostback == false)
    {
        SetSessionData();
    }
    //
    // Set your GridView, DataTable, DataView, etc. events here.
    //
}

void SetSessionData();
{
        List<YourDataBoundObject> myDataBoundObject = GetYourDataBoundObject(); // Or Collection<T>, IEnumerable<T>, etc.
        Session["data"] = myDataBoundObject;
}

void YourGridView_Load(object sender, EventArgs e)
{
    BindYourGridView();
}

void BindYourGridView()
{
    YourGridView.DataSource = GetSessionData();
    YourGridView.DataBind();
}

List<YourDataBoundObject> GetSessionData()
{
    return (List<YourDataBoundObject>) Session["data"];
}

void YourDataTable_Load(object sender, EventArgs e)
{
    BindYourDataTable();
}

void BindYourDataTable()
{
    YourDataTable.DataSource = GetSessionData();
    YourDataTable.DataBind();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文