asp.net - AJAX 回调到服务器端后重新调用一个脚本函数!

hesi726 2010-01-25 03:07:46
一个 UpdatePanel, 里面有个 GridView, 还有一个 查询按钮;
一个 GridView 里面的所有TextBox每一个在内容变化的时候,需要合计一下所有 TextBox的内容(全部都是数字);
现在已经写了 calTotal 的脚本函数;
也已经有了服务器端的 queryItem; 点击查询按钮时,数据也能够正常显示;
唯一问题是,在点击查询按钮以后,如何调用我客户端的 calTotal 脚本函数,使得查询后能够立即进行合计?
如果你的答案是要我在服务器端合计后赋值,那就不用了;谢谢!

简单说,就是使用 UpdatePanel时,如何在服务器端事件处理完成后,调用一个客户端的脚本函数!
...全文
169 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
teerhu 2010-01-27
  • 打赏
  • 举报
回复

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %>

<!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 runat="server">
<title>Demo</title>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>

<script type="text/javascript">
$(function()
{
$("span[id*=Total]").html(comp());
$("input[id*=TextBox]").change(function(){$("span[id*=Total]").html(comp());});

});
function comp()
{
var total=0;
var obj=$("input[id*=TextBox]");
$(obj).each(function(i){total=total+parseInt($(this).val());});
alert(total);
return total;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" ShowFooter="True">
<Columns>

<asp:BoundField DataField="test1" HeaderText="Test1" />
<asp:BoundField DataField="test2" HeaderText="Test2" />
<asp:BoundField DataField="test3" HeaderText="Test3" />
<asp:BoundField DataField="test4" HeaderText="Test4" />
<asp:BoundField DataField="test5" HeaderText="Test5" />
<asp:BoundField DataField="test6" HeaderText="Test6" />
<asp:BoundField DataField="test7" HeaderText="Test7" />
<asp:BoundField DataField="test8" HeaderText="Test8" />
<asp:BoundField DataField="test9" HeaderText="Test9" />
<asp:TemplateField HeaderText="Test10">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("test10") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("test10") %>'></asp:TextBox>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="Total" runat="server" Text="Label"></asp:Label>
</FooterTemplate>
</asp:TemplateField>

</Columns>
</asp:GridView>

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



using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Default4 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
for (int i = 1; i <= 10; i++)
{
if (i != 10)
{
dt.Columns.Add("Test" + i.ToString());
}
else
{
dt.Columns.Add("Test" + i.ToString(), typeof(Int32));
}
}
for (int j = 0; j < 20; j++)
{
DataRow dr = dt.NewRow();
for (int i = 0; i < 10; i++)
{
int value=j*(i*i+1);
dr[i] = i != 9 ? "data" + i.ToString() :value.ToString() ;
}
dt.Rows.Add(dr);
}
GridView1.DataSource = dt;
GridView1.DataBind();

}
}
rt112000 2010-01-25
  • 打赏
  • 举报
回复
http://blog.jeromeparadis.com/archive/2007/03/01/1501.aspx 说的还蛮清楚。不过用这种方法,任何ajax事件(同updatepanel或不同updatepanel)完成后,都会调用脚本函数。。
lovesi3344 2010-01-25
  • 打赏
  • 举报
回复
帮顶
消灭零回复

52,787

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧