在做网页时,同一页面上通常我们会不止一次的用到回调,那么我们用方法能实现这样的效果呢?是定义多个回传接口还是通过参数判断来执行相应的语句块呢!
下面我用的是通过参数判断来实现
.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
>
上面代码定义了几个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
在这里,还有一个想法,是不是能定义多个这样的接口呢?还得再研究下,是不是不行呢????
呵呵。。。