Хранить временную информацию в gridview перед постбэком - PullRequest
1 голос
/ 28 марта 2011

У меня есть диалоговое окно (модальное), где я регистрирую один (или несколько) контактов.

контакт переходит в сетку, где их можно редактировать или удалять.

данные в Gridview могут быть сохранены в базе данных только в конце процесса.

Как этого добиться?

Модальный код

$(function () {
    $(".ModalBox").dialog({
        autoOpen: false,
        height: 400,
        resizable: false,
        draggable: false,
        width: 602,
        modal: true,
        open: function (type, data) {
            $(this).parent().appendTo($("form:first"));
        }
    });
});

OBS.:

  • У меня нет хорошего образца кода CSharp или html, потому что я не знаю, как добитьсяэтот.Весь мой код выглядит беспорядочно (много чего уже пытается)

  • Мой GridView - ascx, а модал - в том же ascx.

  • Я верю какой-то временный стол, или что-то вроде этого поможет, но я никогда не делал что-то подобное (похоже на программное обеспечение магазинной тележки), и я даже не знаю, как его искать.

Спасибо.если вы можете сделать некоторый пример кода, это будет здорово.

РЕДАКТИРОВАТЬ: я сделал этот код:

CSharp код:

[Serializable]
        public class TabelaTempContato
        {
            public int IDCliente { get; set; }
            public string Nome { get; set; }
            public string Email { get; set; }
            public string Telefone { get; set; }
            public string Cpf { get; set; }
            public string Rg { get; set; }
            public string Departamento { get; set; }
            public string Cargo { get; set; }
        }

        protected List ListaTabelaTemp
        {
            get
            {
                if (this.ViewState["TabelaTemp"] == null)
                {
                    this.ViewState["TabelaTemp"] = new List();
                }

                return (List)this.ViewState["TabelaTemp"];
            }
        }

        protected void AddItem()
        {
            this.ListaTabelaTemp.Add(new TabelaTempContato());
            this.gvContato.DataSource = this.ListaTabelaTemp;
            this.gvContato.DataBind();
        }

        protected void btnTest_Click(object sender, EventArgs e)
        {
            this.AddItem();
        }

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

РЕДАКТИРОВАТЬ: я создаю ответ с моим решением.

1 Ответ

1 голос
/ 29 марта 2011

        [Serializable]
        public struct TempContato
        {
            public int IDCliente { get; set; }
            public string Nome { get; set; }
            public string Email { get; set; }
            public string Telefone { get; set; }
            public string Cpf { get; set; }
            public string Rg { get; set; }
            public string Departamento { get; set; }
            public string Cargo { get; set; }
        }

        protected List ListaTabelaTemp
        {
            get
            {
                if (this.ViewState["ListaTempContato"] == null)
                    this.ViewState["ListaTempContato"] = new List();

                return (List)this.ViewState["ListaTempContato"];
            }
        }

        protected void AddItem()
        {
            TempContato tempContato = new TempContato();

            //tempContato.IDCliente = Convert.ToInt32(this.txtEmailContato.Text);
            tempContato.Nome = this.txtNomeContato.Text;
            tempContato.Email = this.txtEmailContato.Text;
            tempContato.Telefone = this.txtTelefoneContato.Text;
            tempContato.Cpf = this.txtCpfContato.Text;
            tempContato.Rg = this.txtRgContato.Text;
            tempContato.Departamento = this.ddlDepartamentoContato.SelectedValue;
            tempContato.Cargo = this.ddlCargoContato.SelectedValue;

            this.ListaTabelaTemp.Add(tempContato);
        }

        protected void AtualizarGrid()
        {
            this.gvContato.DataSource = this.ListaTabelaTemp;
            this.gvContato.DataBind();
        }

        protected void btnTest_Click(object sender, EventArgs e)
        {
            this.AddItem();
            this.AtualizarGrid();
        }

Теперь я получаю значения из моего модального! Просто нужно пару вещей сейчас (я верю).

1- Получите данные в моей базе данных, чтобы загрузить GridView в первый раз (если это издание), и загрузите с новыми временными данными.

2 - сохранить новые временные данные.

СДЕЛАНО:

1 - я загружаю свое состояние просмотра и использую его для загрузки сетки.

2 - также используя мое viewstate для сохранения моих данных в базе данных.

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