Rahul Choudhary Ответов: 1

Система Attandance в ASP.NET


я хочу сделать онлайн система посещаемости для студентов я имел GridView в котором я заселился части все присутствующие месяца я.Е 'A' или 'П' в каждой клетке, но сейчас я хочу изменить данные в ячейке как если это показывают, а потом на кнопку грид это показывают, P а не попасть в этом положении

мой код выглядит следующим образом :

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

<pre><div id="datagrid" style="overflow:scroll; height:400px; width:980px; ">
                    <asp:GridView ID="dgvrouteplanhead" runat="server"
                        AutoGenerateColumns="true"
                        Width="100%"
                        DataKeyNames="Name"
                        EmptyDataText="No record found !!"
        
                        CellPadding="4" ForeColor="#333333" OnRowDataBound="dgvrouteplanhead_RowDataBound">
                        <RowStyle BackColor="#E3EAEB" />
                        <EmptyDataRowStyle CssClass="gvEmpty" />
                        
                    <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                    <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
                    <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
                    <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                    <EditRowStyle BackColor="#7C6F57" />
                    <AlternatingRowStyle BackColor="White" />
                    </asp:GridView>
                    
                    </div>



обратно код в получить все данные в объект DataTable

dsattan.Tables[0].Rows.Add(dsatt.Tables[0].Rows[0]["RegnNo"].ToString(), regesno, dsatt.Tables[0].Rows[0]["Name"].ToString(), dsatt.Tables[0].Rows[0]["a1"].ToString(), dsatt.Tables[0].Rows[0]["a2"].ToString(), dsatt.Tables[0].Rows[0]["a3"].ToString(), dsatt.Tables[0].Rows[0]["a4"].ToString(), dsatt.Tables[0].Rows[0]["a5"].ToString(), dsatt.Tables[0].Rows[0]["a6"].ToString(), dsatt.Tables[0].Rows[0]["a7"].ToString(), dsatt.Tables[0].Rows[0]["a8"].ToString(), dsatt.Tables[0].Rows[0]["a9"].ToString(), dsatt.Tables[0].Rows[0]["a10"].ToString(), dsatt.Tables[0].Rows[0]["a11"].ToString(), dsatt.Tables[0].Rows[0]["a12"].ToString(), dsatt.Tables[0].Rows[0]["a13"].ToString(), dsatt.Tables[0].Rows[0]["a14"].ToString(), dsatt.Tables[0].Rows[0]["a15"].ToString(), dsatt.Tables[0].Rows[0]["a16"].ToString(), dsatt.Tables[0].Rows[0]["a17"].ToString(), dsatt.Tables[0].Rows[0]["a18"].ToString(), dsatt.Tables[0].Rows[0]["a19"].ToString(), dsatt.Tables[0].Rows[0]["a20"].ToString(), dsatt.Tables[0].Rows[0]["a21"].ToString(), dsatt.Tables[0].Rows[0]["a22"].ToString(), dsatt.Tables[0].Rows[0]["a23"].ToString(), dsatt.Tables[0].Rows[0]["a24"].ToString(), dsatt.Tables[0].Rows[0]["a25"].ToString(), dsatt.Tables[0].Rows[0]["a26"].ToString(), dsatt.Tables[0].Rows[0]["a27"].ToString(), dsatt.Tables[0].Rows[0]["a28"].ToString(), dsatt.Tables[0].Rows[0]["a29"].ToString(), dsatt.Tables[0].Rows[0]["a30"].ToString(), dsatt.Tables[0].Rows[0]["a31"].ToString());


dgvrouteplanhead.DataSource = dsattan.Tables[0];
            dgvrouteplanhead.DataBind();

Karthik_Mahalingam

Непонятный.

Rahul Choudhary

что не понятно

Karthik_Mahalingam

a ' или 'p' в каждой ячейке, но теперь я хочу изменить данные ячейки, например, если она показывает a, то при щелчке сетки она показывает p, но не попадает в эту позицию

Rahul Choudhary

смотрите его простую систему посещаемости, то есть если значение ячейки равно "А" , и при нажатии на это значение ячейки оно автоматически меняет свое значение на "Р", и снова, если я нажимаю на эту ячейку gridview, оно становится "а".

1 Ответов

Рейтинг:
5

Karthik_Mahalingam

обратитесь к этому

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script>
        $(function () {
            var grid = document.getElementById('<%= GridView1.ClientID%>');
            $('td', grid).on('click', function () {
                var current = this.innerText.toLowerCase();
                if (current == 'a')
                    this.innerText = 'P';
                if (current == 'p')
                    this.innerText = 'A';
            });

        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <asp:GridView ID="GridView1" runat="server"></asp:GridView>

    </form>
</body>
</html>



protected void Page_Load(object sender, EventArgs e)
      {

          if (!Page.IsPostBack) {
              DataTable dt = new DataTable();
              dt.Columns.Add("Col1");
              dt.Columns.Add("Col2");
              dt.Columns.Add("Col3");
              dt.Rows.Add("A", "A", "P");
              dt.Rows.Add("A", "P", "P");
              dt.Rows.Add("P", "A", "P");
              GridView1.DataSource = dt;
              GridView1.DataBind();
          }
      }


демонстрация: скрипка - таблицу версии[^]


Rahul Choudhary

этот код не работает, когда я нажимаю на ячейку gridview, текст "A" не меняется на "P".

Karthik_Mahalingam

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

проверьте эту демонстрацию : https://jsfiddle.net/karthikjsf/3qfvgxjd/

Rahul Choudhary

ya его работа в "таблице", но он не работает в gridview

Karthik_Mahalingam

в конечном счете gridview будет отображаться как таблица в браузере

Rahul Choudhary

не могли бы вы сделать это в gridview

Karthik_Mahalingam

вот что я опубликовал в качестве решения.

Rahul Choudhary

спасибо теперь он работает

Karthik_Mahalingam

крутой

Rahul Choudhary

спасибо еще одно предложение, пожалуйста, не могли бы вы сказать мне, как посчитать нет "А" и "Р" в одной строке, а затем показать их в последнем столбце с помощью jquery

Karthik_Mahalingam

во время нагрузки или при смене?

Rahul Choudhary

на смену

Karthik_Mahalingam

хорошо я буду ЧК

Rahul Choudhary

текст меняется, но когда я хочу извлечь его из кода из бэкенда для сохранения данных, то он показывает "A "" GridView1.Rows[i].Клеток[3].Текст.ToString()" это не показывает 'P', я делаю что-то не так

Karthik_Mahalingam

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

Rahul Choudhary

тогда я должен использовать его для поддержания состояния

Karthik_Mahalingam

Нет Рахула, используйте связанные поля и шаблонные поля

Rahul Choudhary

поэтому если я использую boundfield и с тем же java скриптом то он изменит значение ячейки или нет и сохранит значение или нет

Karthik_Mahalingam

сделайте небольшой poc и проверьте, если он не сохраняет значение, то вам придется использовать скрытое поле в поле шаблона