情况:
一个DataGrid中有三个模板列,在这些模板列的ItemTemplate中,直接放TextBox,在某一个DataGridItem中,当其中一个TextBox的值发生变化时,该DataGridItem中的另外一个TextBox的值要相应的发生变化.要求:
用JavaScript脚本语言在客户端实现.我的想法:
假如DataGrid的名字为Test_Grid,三个模板列中的TextBox的名字分别为TextBox1,TextBox2,TextBox3.
那么当该页面呈现在客户端的时候,它的Html文件会把那三个TextBox控件按一个规律命名.规律如下:第一行中的那三个控件名分别为:Test_Grid_ctrl2_TextBox1, Test_Grid_ctrl2_TextBox2, Test_Grid_ctrl2_TextBox3.那么我就这样想了,写一个Count(obj)自动计算的函数,在实际调用的时候,我就传一个"this"参数给它.如果能够通过这个Count函数中的obj来定位找出相应的TextBox控件,那么就可以用一般的方法来实现这个自动计算的脚本了.但是,我现在定位不出这些相应的控件,所以目前为止我还不知道该怎么样实现这个功能.路过的大哥,大姐,帮个忙啊.(可能我描述的不是很清楚.大家见谅!)
一个DataGrid中有三个模板列,在这些模板列的ItemTemplate中,直接放TextBox,在某一个DataGridItem中,当其中一个TextBox的值发生变化时,该DataGridItem中的另外一个TextBox的值要相应的发生变化.要求:
用JavaScript脚本语言在客户端实现.我的想法:
假如DataGrid的名字为Test_Grid,三个模板列中的TextBox的名字分别为TextBox1,TextBox2,TextBox3.
那么当该页面呈现在客户端的时候,它的Html文件会把那三个TextBox控件按一个规律命名.规律如下:第一行中的那三个控件名分别为:Test_Grid_ctrl2_TextBox1, Test_Grid_ctrl2_TextBox2, Test_Grid_ctrl2_TextBox3.那么我就这样想了,写一个Count(obj)自动计算的函数,在实际调用的时候,我就传一个"this"参数给它.如果能够通过这个Count函数中的obj来定位找出相应的TextBox控件,那么就可以用一般的方法来实现这个自动计算的脚本了.但是,我现在定位不出这些相应的控件,所以目前为止我还不知道该怎么样实现这个功能.路过的大哥,大姐,帮个忙啊.(可能我描述的不是很清楚.大家见谅!)
解决方案 »
- 怎么点击一个图片自动跳转到另一个网页
- 跪求一个利用正则表达式分组替换!
- 如何修改datalist列标题
- Dropdownlist 问题,页面滚动时刷新是花的....
- DataTable问题请教!
- SQL 事务问题?怎么使用asp.net中 的事务啊???????????
- 郁闷呀!!Visual Studio.net已检测到指定的Web服务器运行的不是ASP.NET 1.1版。您将无法运行ASP.NET Web应用程序或服务????急急呀!
- win2003安装以后的问题
- URL重写之后的问题....哎~~困扰了几天的问题......
- 关于datagrid上的数据更新,特别奇怪(急)
- HttpFileCollection的用法???
- 请问:如何在服务器端得到客户端的值?
TextBox txtbTest=new TextBox();
txtbTest=(TextBox )Test_Grid.Items[i].Cells[j].FindControl("TextBoxID");
计算就不知道你要怎么计算了
void Page_Load(Object sender, EventArgs e)
{
if (!IsPostBack)
{
string[] s = {"a","b","c"};
Test_Grid.DataSource= s;
Test_Grid.DataBind();
}
}
</script>
<form runat="server">
<asp:DataGrid id="Test_Grid" runat="server" AutoGenerateColumns="false"
onkeyup="DoCalc()"
>
<Columns>
<asp:TemplateColumn HeaderText="1">
<ItemTemplate>
<asp:TextBox id="TextBox1" runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="2">
<ItemTemplate>
<asp:TextBox id="TextBox2" runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="3">
<ItemTemplate>
<asp:TextBox id="TextBox3" runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form><script language="javascript">
function DoCalc()
{
var e = event.srcElement;
if (e.type !== "text")
return; var p = e;
while (p.tagName != "TABLE" && p.tagName != "TR")
p = p.parentElement; if (p.tagName == "TR")
{
var inputs = p.all.tags("INPUT");
if (inputs.length >=3)
{
var vs = new Array(inputs.length);
var s = 0;
for (var i=0; i < vs.length-1; i++)
if (inputs[i].type == "text")
s += parseFloat(inputs[i].value); inputs[inputs.length-1].value = s;
}
}
}
</script>