Чтение данных из SqlDataSource или GridView - PullRequest
0 голосов
/ 26 декабря 2010

У меня есть SqlDataSource и GridView на веб-форме. GridView.DataSourceID = mySqlDataSource.

Когда я вызываю myGridView.DataBind (), все данные успешно связываются на странице.

Как можно прочитать уже полученные данные из объектов mySqlDataSource или myGridView как DataTable или DataView? Спасибо

Ответы [ 2 ]

1 голос
/ 03 июля 2012

Данные в виде сетки можно прочитать с помощью свойства 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 
}
0 голосов
/ 26 декабря 2010

Если ваш набор данных не гигантский, вы можете сохранить его в Session, связать GridView с данными Session, а затем повторно использовать данные 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();
}
...