Уважаемые Коллеги.
Возникла задача реализовать таблицу (используя GridView или же просто Table ) такую же как и в excel (скриншот) с возможностью ввода значений в поля и вывода их результата умножения определенную ячейку таблицы. Рабочий пример таблицы на скрине. Пробовал поискать подобную реализацию без перезагрузки страницы но не нашел похожее. Также отмечу, что данные вводятся вручную онлайн, сохранять их не нужно, главное чтобы была возможность умножение к примеру A1 * B1 = C2.
Если есть подобные примеры реализации, то пожалуйста помогите.
Спасибо.
Проблему на половину решил.
Осталось понять как вывести значение в asp: Label через javascript, а именно код ниже. Помогите может знаете как.
Анимация работы таблицы :
<%@ 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>