Member 12859772 Ответов: 3

GridView в галку после потерял значение


Привет, я использую таблицу продуктов. Я выбор категории dropdownlist для После страница обратной передачи, и я выбор флажок и у меня выбор другой dropdownlist для После страница обратной передачи, и я потерял флажок значение проверил. Как я могу сделать пример.

Что я уже пробовал:

<asp:GridView ID="example" CssClass="table table-striped table-bordered table-hover" AutoGenerateColumns="false" runat="server" ClientIDMode="Static" OnPreRender="example_PreRender" OnRowEditing="example_RowEditing" OnRowCancelingEdit="example_RowCancelingEdit" OnRowDeleting="example_RowDeleting" OnRowDataBound="example_RowDataBound">

<columns>

    <asp:TemplateField HeaderText="Ürün Seç" ItemStyle-Width="50">
        <HeaderTemplate>
            <asp:CheckBox ID="chkAll" runat="server" onclick="checkAll(this);" />
        </HeaderTemplate>
        <itemtemplate>
            <asp:CheckBox ID="chcsec" CssClass="form-control" runat="server" onclick="Check_Click(this);" />



    <asp:TemplateField HeaderText="Ürün Ad" ItemStyle-Width="100">
        <itemtemplate>
            <asp:Label ID="lblUrun" runat="server" Text='<%# Eval("UrunAd") %>'>

        <edititemtemplate>
            <asp:TextBox ID="txturunad" runat="server" Text='<%# Eval("UrunAd") %>'>




    <asp:TemplateField HeaderText="Stok" ItemStyle-Width="50">
        <itemtemplate>
            <asp:Label ID="lblStok" Style="padding: 3px 5px;" runat="server" Text='<%# Eval("Stok") %>'>

        <edititemtemplate>
            <asp:TextBox ID="txtstok" Style="padding: 3px 5px;" runat="server" Text='<%# Eval("Stok") %>'>



    <asp:TemplateField HeaderText="Fiyat" ItemStyle-Width="50">
        <itemtemplate>
            <asp:Label ID="txtfiyat" Style="padding: 3px 5px;" CssClass="form-control" runat="server">

        <edititemtemplate>
            <asp:TextBox ID="txtfiyat" Style="padding: 3px 5px;" runat="server" CssClass="form-control">



    <asp:TemplateField HeaderText="Adet" ItemStyle-Width="50">
        <itemtemplate>
            <asp:Label ID="txtAdet" Style="padding: 3px 5px;" CssClass="form-control" runat="server">

        <edititemtemplate>
            <asp:TextBox ID="txtAdet" runat="server" Style="padding: 3px 5px;" CssClass="form-control">





    <asp:TemplateField HeaderText="Eleman Seç" ItemStyle-Width="100">

        <itemtemplate>
            <asp:DropDownList ID="drpEleman" CssClass="form-control" runat="server">





    <asp:TemplateField HeaderText="Eleman Adet" ItemStyle-Width="50">
        <itemtemplate>
            <asp:Label ID="txtElemanAdet" Style="padding: 3px 5px;" CssClass="form-control" runat="server">

        <edititemtemplate>
            <asp:TextBox ID="txtElemanAdet" runat="server" Style="padding: 3px 5px;" CssClass="form-control">



    <asp:TemplateField HeaderText="Eleman Fiyat" ItemStyle-Width="50">
        <itemtemplate>
            <asp:Label ID="txtElemanFiyat" Style="padding: 3px 5px;" CssClass="form-control" runat="server">

        <edititemtemplate>
            <asp:TextBox ID="txtElemanFiyat" runat="server" Style="padding: 3px 5px;" CssClass="form-control">




    <asp:CommandField ButtonType="Link" ShowEditButton="true" ShowDeleteButton="true" ItemStyle-Width="150" />

Suvendu Shekhar Giri

Ну, так в чем же ваш вопрос?

Member 12859772

Вы меня не понимаете? Я использую Gridview и In checkbox. Когда я проверил флажок после обратной передачи, он потерял значение флажка. Я хочу сделать это, если флажок установлен, чтобы сохранить значение.

3 Ответов

Рейтинг:
2

Vincent Maverick Durano

Я согласен с вышеприведенным участником, такова природа сети. Веб-приложения являются апатридами, и вы должны что-то сделать, чтобы сохранить их состояние. CheckBox это находится в обычной сетке или постраничной сетке. Вам нужно будет отслеживать выбранную страницу и CheckBox что было выбрано и хранить его где-то вроде ViewState/Session так что вы можете ссылаться на них обратно, когда он отправляет обратную связь. Вот один пример, на который вы можете сослаться: Сохранение состояния чекбоксов при разбиении на страницы в ASP.Net управления GridView[^]


Member 12859772

это правда, что код?

Vincent Maverick Durano

Что ты имеешь в виду?

Member 12859772

Мой код верен? - Спросил я.

Vincent Maverick Durano

Какой код? Если вы имеете в виду ваше решение, то да. Вы должны использовать сессии/отображение ссылок выбранного состояния флажка между обратными передачами.

Member 12859772

Но у меня есть проблема. У меня есть две категории и по продуктам. Когда я выбрал первую категорию и установил флажок два продукта. После того, как я выбрал вторую категорию. Я выбрал один продукт. После того, как я хочу сделать выбранные флажки общей ценой. Когда я нажимаю кнопку Total, только флажок total 2. Поэтому я выбрал 3 флажка. Как я могу это сделать?

Vincent Maverick Durano

Разместите его как отдельный поток, чтобы ответы на этот поток не были смешаны.

Member 12859772

Что я могу сделать еще один открытый вопрос?

Vincent Maverick Durano

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

Member 12859772

Я открываю. http://www.codeproject.com/Questions/1157025/Gridview-in-checkbox-after-lost-value

Vincent Maverick Durano

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

Member 12859772

Но еще один пост удалили. Этот пост будет. Можете ли вы помочь мне в этом посте?

Рейтинг:
1

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Вы должны хранить индексы флажков или что-то еще, чтобы распознать их где-то, возможно, в свойстве Session или ViewState. При загрузке сетки внутри RowDatabound вы можете установить этот флажок, если он присутствует в сеансе, просто.


Member 12859772

Как я могу это сделать? Я использую GridView.

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Проверить следующее.

1. http://www.aspdotnet-suresh.com/2010/04/maintaining-state-of-checkboxes-while.html
2. http://stackoverflow.com/a/24734684/1099247

Рейтинг:
1

Member 12859772

<asp:gridview id="example" cssclass="table table-striped table-bordered table-hover" autogeneratecolumns="false" datakeynames="ID" runat="server" clientidmode="Static" onprerender="example_PreRender" onrowediting="example_RowEditing" onrowcancelingedit="example_RowCancelingEdit" onrowdeleting="example_RowDeleting" onrowdatabound="example_RowDataBound" ondatabound="example_DataBound">

                                            <columns>

                                                <asp:templatefield headertext="Ürün Seç" itemstyle-width="50">

                                                    <itemtemplate>
                                                       
                                                            <asp:checkbox id="chcsec" cssclass="form-control" runat="server" autopostback="true">


                                                      
                                                    </asp:checkbox></itemtemplate>
                                                </asp:templatefield>

                                                <asp:templatefield headertext="Ürün Ad" itemstyle-width="100">
                                                    <itemtemplate>
                                                        <asp:label id="lblUrun" runat="server" text="<%# Eval("UrunAd") %>"></asp:label>
                                                    </itemtemplate>
                                                    <edititemtemplate>
                                                        <asp:textbox id="txturunad" runat="server" text="<%# Eval("UrunAd") %>"></asp:textbox>
                                                    </edititemtemplate>
                                                </asp:templatefield>


                                                <asp:templatefield headertext="Stok" itemstyle-width="50">
                                                    <itemtemplate>
                                                        <asp:label id="lblStok" style="padding: 3px 5px;" runat="server" text="<%# Eval("Stok") %>"></asp:label>
                                                    </itemtemplate>
                                                    <edititemtemplate>
                                                        <asp:textbox id="txtstok" style="padding: 3px 5px;" runat="server" text="<%# Eval("Stok") %>"></asp:textbox>
                                                    </edititemtemplate>
                                                </asp:templatefield>

                                                <asp:templatefield headertext="Fiyat" itemstyle-width="50">
                                                    <itemtemplate>
                                                        <asp:label id="txtfiyat" style="padding: 3px 5px;" cssclass="form-control" runat="server">500</asp:label>
                                                    </itemtemplate>
                                                    <edititemtemplate>
                                                        <asp:textbox id="txtfiyat" style="padding: 3px 5px;" runat="server" cssclass="form-control"></asp:textbox>
                                                    </edititemtemplate>
                                                </asp:templatefield>

                                                <asp:templatefield headertext="Adet" itemstyle-width="50">
                                                   <itemtemplate>
                                                        <asp:label id="txtAdet" style="padding: 3px 5px;" cssclass="form-control" runat="server"></asp:label>
                                                    </itemtemplate>
                                                    <edititemtemplate>
                                                        <asp:textbox id="txtAdet" runat="server" style="padding: 3px 5px;" cssclass="form-control"></asp:textbox>
                                                    </edititemtemplate>
                                                </asp:templatefield>



                                                <asp:templatefield headertext="Eleman Seç" itemstyle-width="100">

                                                    <itemtemplate>
                                                        <asp:dropdownlist id="drpEleman" cssclass="form-control" runat="server"></asp:dropdownlist>
                                                    </itemtemplate>


                                                </asp:templatefield>

                                                <asp:templatefield headertext="Eleman Adet" itemstyle-width="50">
                                                    <itemtemplate>
                                                        <asp:label id="txtElemanAdet" style="padding: 3px 5px;" cssclass="form-control" runat="server"></asp:label>
                                                    </itemtemplate>
                                                    <edititemtemplate>
                                                        <asp:textbox id="txtElemanAdet" runat="server" style="padding: 3px 5px;" cssclass="form-control"></asp:textbox>
                                                    </edititemtemplate>
                                                </asp:templatefield>

                                                <asp:templatefield headertext="Eleman Fiyat" itemstyle-width="50">
                                                    <itemtemplate>
                                                        <asp:label id="txtElemanFiyat" style="padding: 3px 5px;" cssclass="form-control" runat="server"></asp:label>
                                                    </itemtemplate>
                                                    <edititemtemplate>
                                                        <asp:textbox id="txtElemanFiyat" runat="server" style="padding: 3px 5px;" cssclass="form-control"></asp:textbox>
                                                    </edititemtemplate>
                                                </asp:templatefield>

                                         

                                                <asp:commandfield buttontype="Link" showeditbutton="true" showdeletebutton="true" itemstyle-width="150">
                                            </asp:commandfield></columns>

                                        </asp:gridview>


------------------------------------------------------------------------------------

if (!Page.IsPostBack)
          {
              //Uruns();
              //Projes();
              //Siparislers();
              Elemans();
              Musteris();
              Kategoris();



          }
          else
          {
              List<object> datakeys = ViewState["datakeys"] != null ?
                          (List<object>)ViewState["datakeys"] : new List<object>();

              foreach (GridViewRow row in example.Rows)
                  if (((CheckBox)row.FindControl("chcsec")).Checked)
                  {
                      datakeys.Add(example.DataKeys[row.RowIndex].Value);
                  }
                  else
                  {
                      datakeys.Remove(example.DataKeys[row.RowIndex].Value);
                  }
              ViewState["datakeys"] = datakeys;
          }


-----------------------------------------------------------

protected void example_DataBound(object sender, EventArgs e)
       {
           //Session.Add("arrcon", arr);

           if (example.Rows.Count > 0 && ViewState["datakeys"] != null)
           {
               List<object> datakeys = (List<object>)ViewState["datakeys"];
               foreach (GridViewRow row in example.Rows)
                   ((CheckBox)row.FindControl("chcsec")).Checked = datakeys.Contains(example.DataKeys[row.RowIndex].Value);
           }
       }

       protected void btnTopla_Click(object sender, EventArgs e)
       {
           if (example.Rows.Count > 0 && ViewState["datakeys"] != null)
           {
               int sonuc = 0;
               List<object> datakeys = (List<object>)ViewState["datakeys"];
               int i = 0;
               foreach (GridViewRow row in example.Rows)
               {
                   ((CheckBox)row.FindControl("chcsec")).Checked = datakeys.Contains(example.DataKeys[row.RowIndex].Value);

                   var lblFiyat = row.FindControl("txtfiyat") as Label;


                   int sayi1 = Convert.ToInt32(lblFiyat.Text);

                   i++;

                   sonuc = sayi1 * i;

               }

               txtToplamfiyat.Text = sonuc.ToString();

           }
       }