как я могу сохранить дочернее представление viewstate при обратной передаче - PullRequest
0 голосов
/ 20 января 2012

У меня есть gridview внутри usercontrol.я создал это представление сетки, которое определено как поле класса в конструкторе usercontrol.в Page_Init я устанавливаю необходимые свойства, такие как ID, ширина и т. д. Я также добавляю сетку в коллекцию Control пользовательского элемента управления в том же событии.У меня также есть свойства и методы перенаправления, вот соответствующие:

    public void DataBind()
    {
       _grv.DataBind();
    }
    //here is the datasource
    public object DataSource
    {
      get{ return _grv.DataSource; }
      set{ _grv.DataSource = value; }
    }

Я называю членов привязки данных, как это на моей веб-странице:

    protected void Page_Load(object sender, EventArgs e)
    {
        if(IsPostBack)
          return;

        DataTable table = new DataTable();
        DataColumn col1 = new DataColumn();
        DataColumn col2 = new DataColumn();
        DataColumn col3 = new DataColumn();
        table.Columns.Add(col1);
        table.Columns.Add(col2);
        table.Columns.Add(col3);
        DataRow row1 = table.NewRow();
        DataRow row2 = table.NewRow();
        DataRow row3 = table.NewRow();
        row1[0] = "row1";
        row1[1] = "value";
        row1[2] = "amount";
        row2[0] = "row2";
        row2[1] = "no value";
        row2[2] = "no amount";
        row3[0] = "row3";
        row3[1] = "values";
        row3[2] = "amounts";
        table.Rows.Add(row1);
        table.Rows.Add(row2);
        table.Rows.Add(row3);
        ucManagement.DataSource = table;
        ucManagement.DataBind();
    }

, но при обратной передаче _grv.DataSource является нулевым.что не так?

1 Ответ

1 голос
/ 20 января 2012

Как только GridView связывает источник данных (копирует все данные из этого источника в элементы управления или что-либо еще, что он использует для отображения данных), он больше не нуждается в исходном источнике данных. Он не содержит дубликатов данных, которые ему не нужны. Магнус показал, как вы можете самостоятельно хранить данные, если хотите. В случаях, когда существует только небольшой объем данных, иногда также возможна регенерация.

Я просто хотел подчеркнуть, что это не имеет ничего общего с обертыванием gridview в пользовательском элементе управления или каким-то образом, который вы, возможно, неправильно использовали. Это просто способ, которым он был разработан для работы.

Насколько я знаю, нет свойства или параметра, которые могли бы изменить это поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...