AJAX无刷新回调,根据参数判断执行回调
来源:互联网 发布:单片机控制电磁铁 编辑:程序博客网 时间:2024/06/07 06:52
在做网页时,同一页面上通常我们会不止一次的用到回调,那么我们用方法能实现这样的效果呢?是定义多个回传接口还是通过参数判断来执行相应的语句块呢!
下面我用的是通过参数判断来实现
.aspx页面的head部分加入以下代码:
<script language ="javascript" type ="text/javascript" >
function selectpro(f,context) ...{
var val =f;
<%=cbReference%>
}
function cart(f,context) ...{
var val =f;
<%=cbReference%>
}
function fava(f,context) ...{
var val =f;
<%=cbReference%>
}
function ReceiveServerData(rValue,context)...{
var context_obj=document.getElementById(context);
//context_obj.style.width=60;
//context_obj.style.height=40;
context_obj.innerHTML =rValue;
//startChange(context);
}
</script>
function selectpro(f,context) ...{
var val =f;
<%=cbReference%>
}
function cart(f,context) ...{
var val =f;
<%=cbReference%>
}
function fava(f,context) ...{
var val =f;
<%=cbReference%>
}
function ReceiveServerData(rValue,context)...{
var context_obj=document.getElementById(context);
//context_obj.style.width=60;
//context_obj.style.height=40;
context_obj.innerHTML =rValue;
//startChange(context);
}
</script>
上面代码定义了几个Button的OnClick函数,通过它把参数传到后台,在后台通过参数的判断来执行相应的语句块,具体如下:
.aspx.vb页代码:
Implements System.Web.UI.ICallbackEventHandler ' 继承接口
Public cbReference As String
Public returnvalue As String ' 定义两个公共变量,以便在后面代码中使用
’ 接受处理结果函数
Public Function GetCallbackResult()Function GetCallbackResult() As String Implements System.Web.UI.ICallbackEventHandler.GetCallbackResult
Return returnvalue
End Function
‘ 事件处理
Public Sub RaiseCallbackEvent()Sub RaiseCallbackEvent(ByVal eventArgument As String) Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent
If IsNumeric(eventArgument) Then ‘ 判断参数
Dim pagesource As New PagedDataSource
pagesource.AllowPaging = True
pagesource.PageSize = 10
pagesource.DataSource = reader.Rows
Dim first As Integer = pagesource.FirstIndexInPage
’-------------------------------------------------------------------------------------------------------------------------------
Dim sw1 As StringWriter = New System.IO.StringWriter()
Dim writer1 As HtmlTextWriter = New HtmlTextWriter(sw1)
writer1.AddAttribute("href", "#")
writer1.AddAttribute("onclick", "selectpro('0','context')")
writer1.RenderBeginTag(HtmlTextWriterTag.A)
writer1.Write("[首页]")
writer1.RenderEndTag()
Dim j, i As Integer
i = CInt(eventArgument)
If i < 6 Then
For j = 1 To 10
writer1.AddAttribute("href", "#")
writer1.AddAttribute("onclick", "selectpro(" + (j - 1).ToString + ",'context')")
writer1.RenderBeginTag(HtmlTextWriterTag.A)
writer1.Write(" " + j.ToString)
writer1.RenderEndTag()
If j = pagesource.PageCount Then
Exit For
End If
Next
Else
For j = 1 To 10
writer1.AddAttribute("href", "#")
writer1.AddAttribute("onclick", "selectpro('" + (i - 4 - 1).ToString + "','context')")
writer1.RenderBeginTag(HtmlTextWriterTag.A)
writer1.Write(" " + (i - 4).ToString)
writer1.RenderEndTag()
i = (i - 4) + 1
If i > pagesource.PageCount Then
Exit For
End If
Next
End If
writer1.AddAttribute("href", "#")
writer1.AddAttribute("onclick", "selectpro('" + pagesource.PageCount.ToString + "','context')")
writer1.RenderBeginTag(HtmlTextWriterTag.A)
writer1.Write(" [尾页]")
writer1.RenderEndTag()
writer1.AddAttribute("width", "576")
writer1.AddAttribute("style", "font-size:13px")
writer1.AddAttribute("cellpadding", "0")
writer1.AddAttribute("cellspacing", "0")
writer1.RenderBeginTag(HtmlTextWriterTag.Table)
writer1.RenderBeginTag(HtmlTextWriterTag.Tr)
writer1.AddAttribute("width", "80")
writer1.RenderBeginTag(HtmlTextWriterTag.Th)
writer1.RenderEndTag()
writer1.AddAttribute("width", "206")
writer1.RenderBeginTag(HtmlTextWriterTag.Th)
writer1.Write("产品名称")
writer1.RenderEndTag()
writer1.AddAttribute("width", "60")
writer1.RenderBeginTag(HtmlTextWriterTag.Th)
writer1.Write("批发价")
writer1.RenderEndTag()
writer1.AddAttribute("width", "60")
writer1.RenderBeginTag(HtmlTextWriterTag.Th)
writer1.Write("品 牌")
writer1.RenderEndTag()
writer1.AddAttribute("width", "70")
writer1.RenderBeginTag(HtmlTextWriterTag.Th)
writer1.Write("产 地")
writer1.RenderEndTag()
writer1.AddAttribute("width", "50")
writer1.RenderBeginTag(HtmlTextWriterTag.Th)
writer1.RenderEndTag()
writer1.AddAttribute("width", "50")
writer1.RenderBeginTag(HtmlTextWriterTag.Th)
writer1.RenderEndTag()
writer1.RenderEndTag()
Dim row As Integer
For row = 0 To 9
pagesource.CurrentPageIndex = CInt(eventArgument)
writer1.RenderBeginTag(HtmlTextWriterTag.Tr)
writer1.RenderBeginTag(HtmlTextWriterTag.Td)
writer1.AddAttribute("src", "upload/" + reader.Rows(pagesource.FirstIndexInPage + row).Item("s_imgurl").ToString)
writer1.AddAttribute("style", "border: 1px solid Silver")
writer1.AddAttribute("width", "78")
writer1.RenderBeginTag(HtmlTextWriterTag.Img)
writer1.RenderEndTag()
writer1.RenderEndTag()
writer1.AddAttribute("width", "206")
writer1.RenderBeginTag(HtmlTextWriterTag.Td)
Dim proid As Integer = CType(reader.Rows(pagesource.FirstIndexInPage + row).Item("productid").ToString, Integer)
writer1.AddAttribute("href", "productdetailsinfo.aspx?productid=" & proid)
writer1.RenderBeginTag(HtmlTextWriterTag.A)
writer1.Write(" " + reader.Rows(pagesource.FirstIndexInPage + row).Item("productname").ToString)
writer1.RenderEndTag()
writer1.RenderEndTag()
writer1.AddAttribute("width", "60")
writer1.AddAttribute("align", "center")
writer1.RenderBeginTag(HtmlTextWriterTag.Td)
writer1.Write(reader.Rows(pagesource.FirstIndexInPage + row).Item("price").ToString)
writer1.RenderEndTag()
writer1.AddAttribute("width", "60")
writer1.AddAttribute("align", "center")
writer1.RenderBeginTag(HtmlTextWriterTag.Td)
writer1.Write(reader.Rows(pagesource.FirstIndexInPage + row).Item("pinpai").ToString)
writer1.RenderEndTag()
writer1.AddAttribute("width", "70")
writer1.AddAttribute("align", "center")
writer1.RenderBeginTag(HtmlTextWriterTag.Td)
writer1.Write(reader.Rows(pagesource.FirstIndexInPage + row).Item("changdi").ToString)
writer1.RenderEndTag()
writer1.AddAttribute("width", "50")
writer1.AddAttribute("align", "center")
writer1.RenderBeginTag(HtmlTextWriterTag.Td)
writer1.AddAttribute("type", "button")
writer1.AddAttribute("value", "购买")
Dim aaaa As String
aaaa = Trim(reader.Rows(pagesource.FirstIndexInPage + row).Item("productid").ToString) + "*" + Trim(reader.Rows(pagesource.FirstIndexInPage + row).Item("productname").ToString) + "*" + Trim(reader.Rows(pagesource.FirstIndexInPage + row).Item("price").ToString)
'writer1.AddAttribute("onclick", "cart('12*34*56')")
writer1.AddAttribute("onclick", "cart('" + aaaa + "')")
writer1.RenderBeginTag(HtmlTextWriterTag.Input)
writer1.RenderEndTag()
writer1.RenderEndTag()
writer1.AddAttribute("width", "50")
writer1.AddAttribute("align", "center")
writer1.RenderBeginTag(HtmlTextWriterTag.Td)
writer1.AddAttribute("type", "Button")
writer1.AddAttribute("value", "收藏")
Dim bbbb As String
bbbb = Trim(reader.Rows(pagesource.FirstIndexInPage + row).Item("productid").ToString) + "*" + "bbbb"
writer1.AddAttribute("onclick", "fava('" + bbbb + "')")
writer1.RenderBeginTag(HtmlTextWriterTag.Input)
writer1.RenderEndTag()
writer1.RenderEndTag()
writer1.RenderEndTag()
writer1.RenderBeginTag(HtmlTextWriterTag.Tr)
writer1.AddAttribute("height", "3")
writer1.AddAttribute("colspan", "7")
writer1.RenderBeginTag(HtmlTextWriterTag.Td)
writer1.RenderBeginTag(HtmlTextWriterTag.Hr)
writer1.RenderEndTag()
writer1.RenderEndTag()
‘------------------------------------------------------------------------------------------------------------------------------通过后台代码生成一个表格
If (pagesource.FirstIndexInPage + row) = pagesource.Count Then
Exit For
End If
Next
writer1.RenderEndTag()
returnvalue = sw1.ToString
End If
If Split(eventArgument, "*").Length = 3 Then '断定是购物车触发
If My.User.IsAuthenticated Then
Dim cart()
ReDim cart(2)
cart(0) = Split(eventArgument, "*")(0) '取得产品ID
cart(1) = Split(eventArgument, "*")(1) '取得产品名称
cart(2) = CDec(Split(eventArgument, "*")(2)) '取得产品批发价
Profile.Cart.AddItem(cart(0), cart(1), cart(2))
Else
MsgBox("您尚未登陆,不能使用此功能!")
End If
End If
If Split(eventArgument, "*").Length = 2 Then '断定是加入衣柜触发
If My.User.IsAuthenticated Then
Dim id As String
id = Split(eventArgument, "*")(0).ToString '取得产品ID
Profile.Favorites.AddProduct(id)
'returnvalue = "商品成功加入您的衣柜中!"
Else
MsgBox("您尚未登陆,不能使用此功能!")
End If
End If
End Sub
在这里,还有一个想法,是不是能定义多个这样的接口呢?还得再研究下,是不是不行呢????
呵呵。。。
- AJAX无刷新回调,根据参数判断执行回调
- hashchange实现ajax无刷新回退
- asp.net 2.0中的无刷新回调技术(非AJAX技术)
- ajax请求成功后执行回调方法后页面会自动刷新问题
- 回调实现客户端无刷新
- ICallbackEventHandler实现无刷新回调
- 使用ICallbackEventHandler实现无刷新回调
- AJAX 实现判断用户名是否存在 无刷新效果
- ajax无刷新判断某公司是否包含某业务
- ajax+struts2无刷新判断用户名密码是否相匹配
- Ajax 页面无刷新如何 传递多个参数
- ajax无刷新技术
- ajax无刷新投票~~
- Ajax无刷新评论
- ajax局部无刷新
- Ajax页面无刷新
- ajax 无刷新验证
- Ajax 提交无刷新
- 破解基础知识汇编
- 利用VC++实现AVI文件的合成和分解
- 日期正则表达式
- 地理信息系统(GIS)在城市智能交通信息系统中的应用
- 英文版XP怎么改变成中文
- AJAX无刷新回调,根据参数判断执行回调
- BMP位图文件结构及VC操作
- 小测XSP是否支持中文
- 收集的javascript常用技巧,与大家分享
- SAP发布声明支持Java EE 5 (J2EE的最新升级版本)
- 寝室楼底下的风景
- ESB的是是非非:从微软关于ESB的白皮书谈起
- 显示透明位图
- 一个ObjectDataSource 控件,该控件从名为 AuthorsDB 的数据访问层组件公开数据(代码示例)