@xaknet

Asp.net — Вычисление колонок и вывод результата без перезагрузки страницы UserController GridView?

Уважаемые Коллеги.

Возникла задача реализовать таблицу (используя GridView или же просто Table ) такую же как и в excel (скриншот) с возможностью ввода значений в поля и вывода их результата умножения определенную ячейку таблицы. Рабочий пример таблицы на скрине. Пробовал поискать подобную реализацию без перезагрузки страницы но не нашел похожее. Также отмечу, что данные вводятся вручную онлайн, сохранять их не нужно, главное чтобы была возможность умножение к примеру A1 * B1 = C2.

Если есть подобные примеры реализации, то пожалуйста помогите.
Спасибо.



Проблему на половину решил.
Осталось понять как вывести значение в asp: Label через javascript, а именно код ниже. Помогите может знаете как.

Анимация работы таблицы : screen.gif
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication5.Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Untitled Page</title>
    <script type="text/javascript">
        function JvfunonBlur() {
            var grid = document.getElementById('<%=GridView1.ClientID %>');

            var txtHeadCount;
            var totalSumMandays = 0;

            var txtWorkdaysPerHeadcount;
            var valueResultManhours;

            var totalManhours = 0;


            for (i = 0; i < grid.rows.length; i++) {
                txtHeadCount = grid.rows[i].cells[1];
                txtWorkdaysPerHeadcount = grid.rows[i].cells[2];

                for (j = 0; j < txtHeadCount.childNodes.length; j++) {
                    if (txtHeadCount.childNodes[j].type == "text") {
                        if (!isNaN(txtHeadCount.childNodes[j].value) && txtHeadCount.childNodes[j].value != "") {

                            

                            txtValueResultMandays = parseInt(txtHeadCount.childNodes[j].value) * parseInt(txtWorkdaysPerHeadcount.childNodes[j].value);

                            document.getElementById('<%= GridView1.ClientID %>').getElementsByTagName('txtValueResultMandays').value = txtValueResultMandays;
                        }
                    }
                }
            }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowDataBound="GridView1_RowDataBound">
                    <Columns>
                        <asp:BoundField DataField="Resource Demand" HeaderText="Resource Demand" />

                        <asp:TemplateField HeaderText="Headcount">
                            <ItemTemplate>
                                <asp:TextBox ID="txtHeadCount" Text='<%#Eval("idHeadCount") %>' runat="server">
                                </asp:TextBox>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Workdays per Headcount">
                            <ItemTemplate>
                                <asp:TextBox ID="txtWorkdaysPerHeadcount" Text='<%#Eval("idWorkdaysPerHeadcount") %>'
                                    runat="server">
                                </asp:TextBox>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Mandays">
                            <ItemTemplate>
                                <asp:Label ID="txtValueResultMandays" runat="server"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Manhours">
                            <ItemTemplate>
                                <asp:Label ID="resultManhours" runat="server"></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>

                    </Columns>
                </asp:GridView>
                Total
                <br />
                <asp:TextBox ID="txttotalSumMandays" runat="server"></asp:TextBox>
                <asp:TextBox ID="txttotalManhours" runat="server"></asp:TextBox>
                <br />
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    </form>
</body>
</html>
  • Вопрос задан
  • 2978 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Voucik
Ну чёт типа этого
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>

    <script>

function Start()
{
 document.all('lb').innerHTML ="hello word"
}


    </script>
<label id= "lb">aaaaaaaa</label>
<input type="button" onclick="Start()">
  </body>
</html>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы