如何在GridView中显示第三两列的产品吗? [英] How to display product of two columns in third in GridView?
问题描述
我有一个GridView这对于实例都有..列1列2和。作为用户类型的编号为列1列2和我想显示输入的数字的产品在第三栏3文本框。
列1 |列2 |栏3
200 | 100 | 20000
如果我不是usingGridView这可能是简单的。我不知道如何做到这一点在GridView因为可以无限行。我不知道如果我能的ClientIDMode为静态。
如果它为的werent我可以用在GridView
函数填充(){
VAR TXT1 =的document.getElementById(TextBox1中)值0。
VAR TXT2 =的document.getElementById(TextBox2中)值0。
。的document.getElementById(TextBox3)值= TXT1 * TXT2;
}
注意:我不希望显示在回发的计算值..我想显示它的文本框onchange事件。
如果需要的话,我准备限制可以加到任何特定的数目,如5的行数
更新
< ASP:GridView控件ID =Gridview1=服务器ShowFooter =真
的AutoGenerateColumns =FALSEShowHeaderWhenEmpty =真EmptyDataText =的CssClass =资料表
WIDTH =100%onrowdatabound =Gridview1_RowDataBound>
<柱体和GT;
< ASP:BoundField的数据字段=ROWNUMBER的HeaderText =行号/> <% - ============================================= ==== - %GT;
< ASP:的TemplateField的HeaderText =充电成本中心>
<&ItemTemplate中GT;
< ASP:DropDownList的ID =drpchargecostcenter=服务器> <% - 的SelectedValue ='<%#的eval(chargecostcenter)%>' - %GT;
< ASP:ListItem的值=0>选择< / ASP:ListItem的>
&所述; asp的:列表项值=1> A1ALTINV&下; / ASP:列表项>
< ASP:ListItem的值=2> A1BAXAD2C< / ASP:ListItem的>
< / ASP:DropDownList的>
< / ItemTemplate中>
< / ASP:的TemplateField>
< ASP:的TemplateField的HeaderText =充电位置>
<&ItemTemplate中GT;
< ASP:DropDownList的ID =drpchargelocation=服务器>
< ASP:ListItem的值=0>选择< / ASP:ListItem的>
< ASP:ListItem的值=1>&领主LT; / ASP:ListItem的>
< / ASP:DropDownList的>
< / ItemTemplate中>
< / ASP:的TemplateField>
<% - ============================================= ==== - %GT;
< ASP:的TemplateField的HeaderText =费用日期>
<&ItemTemplate中GT;
< ASP:文本框ID =txtexpdate=服务器文本='<%#的eval(EXPDATE)%>'
的onkeydown =返回false; WIDTH =50像素>< / ASP:文本框>
< ASP:CalendarExtender ID =CalendarExtender1=服务器
的TargetControlID =txtexpdate>
< / ASP:CalendarExtender>
< / ItemTemplate中>
< / ASP:的TemplateField>
< ASP:的TemplateField的HeaderText =从一个地方>
<&ItemTemplate中GT;
< ASP:文本框ID =txtfrmplace=服务器文本='<%#的eval(fromplace)%>'
WIDTH =50像素>< / ASP:文本框>
< / ItemTemplate中>
< / ASP:的TemplateField> < ASP:的TemplateField的HeaderText =为了将>
< FooterStyle HorizontalAlign =右/>
<&ItemTemplate中GT;
< ASP:文本框ID =txttoplace=服务器文本='<%#的eval(toplace)%>'
WIDTH =50像素>< / ASP:文本框>
< / ItemTemplate中>
< FooterTemplate>
<% - < ASP:按钮的ID =ButtonAdd=服务器文本=添加新行
的onclick =ButtonAdd_Click/> - %GT;
< / FooterTemplate>
< / ASP:的TemplateField> < ASP:的TemplateField的HeaderText =旅游模式>
< FooterStyle HorizontalAlign =右/>
<&ItemTemplate中GT;
< ASP:DropDownList的ID =drpmodeoftravelWIDTH =100px的=服务器>
< / ASP:DropDownList的>
<% - < ASP:SqlDataSource的ID =SqlDataSource1=服务器
的ConnectionString =<%$的ConnectionStrings:构造%GT;
的SelectCommand =Proc_ReturnTravelModeSelectCommandType =StoredProcedure的>
< / ASP:SqlDataSource的> - %GT;
< / ItemTemplate中>
< FooterTemplate>
<% - < ASP:按钮的ID =ButtonAdd=服务器文本=添加新行
的onclick =ButtonAdd_Click/> - %GT;
< / FooterTemplate>
< / ASP:的TemplateField>
< ASP:的TemplateField的HeaderText =KMS入住时间旅行>
<&ItemTemplate中GT;
< ASP:文本框ID =txtkms=服务器安其preSS =返回isNumberKey(事件)
文字='<%#的eval(kmstravelled)%>' WIDTH =50像素>< / ASP:文本框>
< / ItemTemplate中>
< / ASP:的TemplateField>
< ASP:的TemplateField的HeaderText =速度/ KM>
<&ItemTemplate中GT;
< ASP:文本框ID =txtrateperkm=服务器
安其preSS =返回isNumberKey(事件)文本='<%#的eval(rateperkm)%>'
WIDTH =40像素>< / ASP:文本框>
< / ItemTemplate中>
< / ASP:的TemplateField>
< ASP:的TemplateField的HeaderText =费用头>
<&ItemTemplate中GT;
< ASP:DropDownList的ID =drpexpensehead=服务器WIDTH =80px>
< ASP:ListItem的值=0>选择< / ASP:ListItem的>
&所述; asp的:列表项值=1> Utkarsh Parajapati&下; / ASP:列表项>
< / ASP:DropDownList的>
< / ItemTemplate中>
< / ASP:的TemplateField>
< ASP:的TemplateField的HeaderText =费用说明>
<&ItemTemplate中GT;
< ASP:文本框ID =txtexpdesc=服务器
文字='<%#的eval(expensedescription)%>' WIDTH =60像素>< / ASP:文本框>
< / ItemTemplate中>
< / ASP:的TemplateField>
< ASP:的TemplateField的HeaderText =付款方式>
<&ItemTemplate中GT;
< ASP:DropDownList的ID =drppaymentmode=服务器WIDTH =120像素>
< ASP:ListItem的值=0>选择< / ASP:ListItem的>
&所述; asp的:列表项值=1> Reimbersement&下; / ASP:列表项>
< / ASP:DropDownList的>
< / ItemTemplate中>
< / ASP:的TemplateField>
< ASP:的TemplateField的HeaderText =比尔金额>
<&ItemTemplate中GT;
< ASP:文本框ID =billamt=服务器安其preSS =返回isNumberKey(事件)
文字='<%#的eval(billamt)%>' WIDTH =60像素>< / ASP:文本框>
< / ItemTemplate中>
< / ASP:的TemplateField>
< ASP:的TemplateField的HeaderText =D>
<&ItemTemplate中GT;
< ASP:LinkButton的=服务器ID =lnkDel按需=DeleteRowHandler文本=D>< / ASP:LinkButton的>
< / ItemTemplate中>
< / ASP:的TemplateField>
< /专栏>
< / ASP:GridView的>
我创建了一个样本,使其与您issue.Please检查并修改根据您的要求。
ASPX:
< ASP:GridView控件ID =Gridview1=服务器ShowFooter =真的AutoGenerateColumns =FALSE
ShowHeaderWhenEmpty =真EmptyDataText =的CssClass =资料表宽度=100%>
<柱体和GT;
< ASP:BoundField的数据字段=ID的HeaderText =行号/>
< ASP:的TemplateField的HeaderText =KMS入住时间旅行>
<&ItemTemplate中GT;
< ASP:文本框ID =txtkms=服务器的onchange =回归乘(这一点,THIS.VALUE);
WIDTH =50像素>< / ASP:文本框>
< / ItemTemplate中>
< / ASP:的TemplateField>
< ASP:的TemplateField的HeaderText =速度/ KM>
<&ItemTemplate中GT;
< ASP:文本框ID =txtrateperkm=服务器的onchange =回归乘(这一点,THIS.VALUE);
WIDTH =40像素>< / ASP:文本框>
< / ItemTemplate中>
< / ASP:的TemplateField>
< ASP:的TemplateField的HeaderText =比尔金额>
<&ItemTemplate中GT;
< ASP:文本框ID =billamt=服务器
WIDTH =60像素>< / ASP:文本框>
< / ItemTemplate中>
< / ASP:的TemplateField>
< /专栏>
< / ASP:GridView的>
的Javascript:
<脚本类型=文/ JavaScript的>
//当数量/成本文本框失去专注在内容有所改变时调用此方法
功能乘法(元素,VAL){ // billamt = txtkms * txtrateperkm
VAR otherElementName ='';
VAR finalElementName ='';
//调用元素即,数量/成本文本框的ID
VAR的ElementName = element.id;
VAR指数= elementName.split('_');
变种finalElement =的document.getElementById(指数[0] +_billamt_+指数[2]);
finalElement.value ='';
//获取第二个要素,即得到量的变化,如果在成本,反之亦然
如果(的endsWith(的ElementNametxtkms_+指数[2])){
otherElementName = elementName.replace(txtkms_+指数[2],txtrateperkm_+指数[2]);
}
否则如果(的endsWith(的ElementNametxtrateperkm_+指数[2])){
otherElementName = elementName.replace(txtrateperkm+指数[2],txtkms_+指数[2]);
}
VAR otherElement =的document.getElementById(otherElementName);
//获取文本框,其中最终值将要被显示
finalElementName =指数[0] +_billamt_+指数[2];
VAR finalElement =的document.getElementById(finalElementName);
finalElement.value = otherElement.value * VAL;
} //检查,如果给定的字符串与给定的后缀结束
功能的endsWith(STR,后缀){
返回str.indexOf(后缀,str.length - suffix.length)== -1!;
}< / SCRIPT>
服务器端:
保护无效的Page_Load(对象发件人,EventArgs的发送)
{
员工EMP = NULL;
清单<员工> listEmployee =新的List<员工>();
的for(int i = 0; I< 1;我++)
{
EMP =新员工();
emp.ID = I;
//emp.Age =年龄:+ i.ToString();
//emp.Location =位置:+ i.ToString();
listEmployee.Add(EMP);
}
Gridview1.DataSource = listEmployee;
Gridview1.DataBind();}
类Employee
{
公众诠释ID {搞定;组; }
}
请让我知道如果你需要进一步的援助。
I have a GridView which for instance has.. column1 and column2.. as user types numbers into column1 and column2 i want to display the product of the entered numbers in a textbox in third column3.
Column1 | Column2 | Column3
200 | 100 | 20000
This could have been simple if i wasnt usingGridView. I am not sure how to do this in a GridView since there can be unlimited rows. I am not sure if i can ClientIDMode to static.
If it werent for the GridView I could have used
function fill() {
var txt1 = document.getElementById("TextBox1").value-0;
var txt2 = document.getElementById("TextBox2").value-0;
document.getElementById("TextBox3").value = txt1 * txt2;
}
Note: I do not want to show calculated values on postback.. i want to show it on onchange event of textbox . If needed i am ready to limit the number of rows that can be added to any specific number such as 5.
UPDATE
<asp:gridview ID="Gridview1" runat="server" ShowFooter="True"
AutoGenerateColumns="False" ShowHeaderWhenEmpty="true" EmptyDataText="" CssClass="tabledata"
Width="100%" onrowdatabound="Gridview1_RowDataBound">
<Columns>
<asp:BoundField DataField="RowNumber" HeaderText="Row Number" />
<%-- =================================================--%>
<asp:TemplateField HeaderText="Charge Cost Center">
<ItemTemplate>
<asp:DropDownList ID="drpchargecostcenter" runat="server" > <%--SelectedValue='<%# Eval("chargecostcenter") %>'--%>
<asp:ListItem Value="0">Select</asp:ListItem>
<asp:ListItem Value="1">A1ALTINV</asp:ListItem>
<asp:ListItem Value="2">A1BAXAD2C</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Charge Location ">
<ItemTemplate>
<asp:DropDownList ID="drpchargelocation" runat="server">
<asp:ListItem Value="0">Select</asp:ListItem>
<asp:ListItem Value="1">Thane</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<%-- =================================================--%>
<asp:TemplateField HeaderText="Expense Date">
<ItemTemplate>
<asp:TextBox ID="txtexpdate" runat="server" Text='<%# Eval("expdate") %>'
onkeydown="return false;" Width="50px"></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtender1" runat="server"
TargetControlID="txtexpdate">
</asp:CalendarExtender>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="From Place">
<ItemTemplate>
<asp:TextBox ID="txtfrmplace" runat="server" Text='<%# Eval("fromplace") %>'
Width="50px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="To Place">
<FooterStyle HorizontalAlign="Right" />
<ItemTemplate>
<asp:TextBox ID="txttoplace" runat="server" Text='<%# Eval("toplace") %>'
Width="50px"></asp:TextBox>
</ItemTemplate>
<FooterTemplate>
<%-- <asp:Button ID="ButtonAdd" runat="server" Text="Add New Row"
onclick="ButtonAdd_Click" />--%>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mode of Travel">
<FooterStyle HorizontalAlign="Right" />
<ItemTemplate>
<asp:DropDownList ID="drpmodeoftravel" Width="100px" runat="server" >
</asp:DropDownList>
<%-- <asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:constr %>"
SelectCommand="Proc_ReturnTravelMode" SelectCommandType="StoredProcedure">
</asp:SqlDataSource>--%>
</ItemTemplate>
<FooterTemplate>
<%-- <asp:Button ID="ButtonAdd" runat="server" Text="Add New Row"
onclick="ButtonAdd_Click" />--%>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="KMS Travelled">
<ItemTemplate>
<asp:TextBox ID="txtkms" runat="server" onkeypress="return isNumberKey(event)"
Text='<%# Eval("kmstravelled") %>' Width="50px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Rate/KM">
<ItemTemplate>
<asp:TextBox ID="txtrateperkm" runat="server"
onkeypress="return isNumberKey(event)" Text='<%# Eval("rateperkm") %>'
Width="40px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Expense Head">
<ItemTemplate>
<asp:DropDownList ID="drpexpensehead" runat="server" Width="80px">
<asp:ListItem Value="0">Select</asp:ListItem>
<asp:ListItem Value="1">Utkarsh Parajapati</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Expense Description">
<ItemTemplate>
<asp:TextBox ID="txtexpdesc" runat="server"
Text='<%# Eval("expensedescription") %>' Width="60px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Payment Mode">
<ItemTemplate>
<asp:DropDownList ID="drppaymentmode" runat="server" Width="120px">
<asp:ListItem Value="0">Select</asp:ListItem>
<asp:ListItem Value="1">Reimbersement</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Bill Amt">
<ItemTemplate>
<asp:TextBox ID="billamt" runat="server" onkeypress="return isNumberKey(event)"
Text='<%# Eval("billamt") %>' Width="60px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="D">
<ItemTemplate>
<asp:LinkButton runat="server" ID="lnkDel" OnCommand="DeleteRowHandler" Text="D"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:gridview>
I have created one sample to resemble your issue.Please check this and modify according to your requirement.
ASPX :
<asp:GridView ID="Gridview1" runat="server" ShowFooter="True" AutoGenerateColumns="False"
ShowHeaderWhenEmpty="true" EmptyDataText="" CssClass="tabledata" Width="100%">
<Columns>
<asp:BoundField DataField="ID" HeaderText="Row Number" />
<asp:TemplateField HeaderText="KMS Travelled">
<ItemTemplate>
<asp:TextBox ID="txtkms" runat="server" onchange="return Multiply(this,this.value);"
Width="50px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Rate/KM">
<ItemTemplate>
<asp:TextBox ID="txtrateperkm" runat="server" onchange="return Multiply(this,this.value);"
Width="40px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Bill Amt">
<ItemTemplate>
<asp:TextBox ID="billamt" runat="server"
Width="60px"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Javascript :
<script type="text/javascript">
//This method is called when quantity/cost textbox looses focus with some change in content
function Multiply(element, val) {
//billamt = txtkms * txtrateperkm
var otherElementName = '';
var finalElementName = '';
//id of calling element i.e, quantity/cost textbox
var elementName = element.id;
var index = elementName.split('_');
var finalElement = document.getElementById(index[0] + "_billamt_" + index[2]);
finalElement.value = '';
//get second element, i.e., get quantity if change is in cost and vice-versa
if (endsWith(elementName, "txtkms_" + index[2])) {
otherElementName = elementName.replace("txtkms_" + index[2], "txtrateperkm_" + index[2]);
}
else if (endsWith(elementName, "txtrateperkm_" + index[2])) {
otherElementName = elementName.replace("txtrateperkm" + index[2], "txtkms_" + index[2]);
}
var otherElement = document.getElementById(otherElementName);
//get textbox where final value is to be displayed
finalElementName = index[0] + "_billamt_" + index[2];
var finalElement = document.getElementById(finalElementName);
finalElement.value = otherElement.value * val;
}
//checks if given string ends with given suffix
function endsWith(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
</script>
Server Side :
protected void Page_Load(object sender, EventArgs e)
{
Employee emp = null;
List<Employee> listEmployee = new List<Employee>();
for (int i = 0; i < 1; i++)
{
emp = new Employee();
emp.ID = i;
//emp.Age = "Age :" + i.ToString();
//emp.Location = "Location :" + i.ToString();
listEmployee.Add(emp);
}
Gridview1.DataSource = listEmployee;
Gridview1.DataBind();
}
class Employee
{
public int ID { get; set; }
}
Please let me know if you need further assistance.
这篇关于如何在GridView中显示第三两列的产品吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!