ext.net 前台创建GridPanel,store ,后台设置Column,model,完成数据绑定。主要实现行选择事件
2013-11-19 12:10
489 查看
1 前台页面布局
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Test2.aspx.vb" Inherits="prjTLECWeb.Test2" %>
<%@Register Assembly ="Ext.Net" Namespace ="Ext.Net" TagPrefix="ext" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>测试GridPanel的行选择事件</title>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager ID="Resourcemanager3" runat ="server" ></ext:ResourceManager>
<ext:Store ID="myStore" runat ="server" ></ext:Store>
<ext:GridPanel id="myGridPanel" runat ="server" ></ext:GridPanel>
</form>
</body>
</html>
2 后台页面代码
(1) 页面加载完成初始化
Imports prjTLECWeb.mySpace
Imports Ext.Net
Public Class Test2
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim objColumnID As New Column
Dim objColumnName As New Column
Dim objClass1 As New MyClass1
Dim objClass2 As New MyClass1
Dim objList As New List(Of MyClass1)
Dim objFieldID As New ModelField
Dim objFieldName As New ModelField
Dim objModel As New Model
Dim objRowSelection As New RowSelectionModel
Dim objPar As New Parameter
objFieldID.Name = "myID"
objFieldName.Name = "myName"
objModel.Fields.Add(objFieldID)
objModel.Fields.Add(objFieldName)
myStore.Model.Clear()
myStore.Model.Add(objModel)
objClass1.myID = "hardenID"
objClass1.myName = "hardenName"
objClass2.myID = "JuecyID"
objClass2.myName = "JuecyName"
objList.Add(objClass1)
objList.Add(objClass2)
myStore.DataSource = objList
myStore.DataBind()
objColumnID.Text = "myID"
objColumnID.DataIndex = "myID"
objColumnName.Text = "myName"
objColumnName.DataIndex = "myName"
myGridPanel.ColumnModel.Add(objColumnID)
myGridPanel.ColumnModel.Add(objColumnName)
myGridPanel.StoreID = myStore.ID
myGridPanel.Width = 400
myGridPanel.Height = 300
objRowSelection.Mode = SelectionMode.Single
myGridPanel.SelectionModel.Clear()
myGridPanel.SelectionModel.Add(objRowSelection)
objPar.Mode = ParameterMode.Raw
objPar.Name = "values"
objPar.Value = "Ext.encode(#{" & myGridPanel.ID & "}.getRowsValues({selectedOnly:true}))"
myGridPanel.DirectEvents.Select.ExtraParams.Add(objPar)
AddHandler myGridPanel.DirectEvents.Select.Event, AddressOf SelectionRow
End Sub
(2) 行选择事件的定义,本质上为完成行选择事件后,通过委托调用一个方法,由于没有定义行选择事件,所以可以把委托对应的方法广义上可以理解为行选择事件
<DirectMethod>
Public Sub SelectionRow(sender As Object, e As DirectEventArgs)
Dim strJSON As String = e.ExtraParams(0).Value
Dim objList As New List(Of MyClass1)
objList = Newtonsoft.Json.JsonConvert.DeserializeObject(Of List(Of MyClass1))(strJSON)
If (Not IsNothing(objList)) Then
Ext.Net.X.Msg.Alert("welcome", objList(0).myID).Show()
End If
End Sub
End Class
3 (上文所用到的类的定义)
Namespace mySpace
Public Class MyClass1
Private Property _myID As String
Private Property _myName As String
Private Property _Y As Integer
Public Property X As Integer
Public Property myID As String
Get
Return _myID
End Get
Set(value As String)
_myID = value
End Set
End Property
Public Property myName As String
Get
Return _myName
End Get
Set(value As String)
_myName = value
End Set
End Property
End Class
End Namespace
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Test2.aspx.vb" Inherits="prjTLECWeb.Test2" %>
<%@Register Assembly ="Ext.Net" Namespace ="Ext.Net" TagPrefix="ext" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>测试GridPanel的行选择事件</title>
</head>
<body>
<form id="form1" runat="server">
<ext:ResourceManager ID="Resourcemanager3" runat ="server" ></ext:ResourceManager>
<ext:Store ID="myStore" runat ="server" ></ext:Store>
<ext:GridPanel id="myGridPanel" runat ="server" ></ext:GridPanel>
</form>
</body>
</html>
2 后台页面代码
(1) 页面加载完成初始化
Imports prjTLECWeb.mySpace
Imports Ext.Net
Public Class Test2
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim objColumnID As New Column
Dim objColumnName As New Column
Dim objClass1 As New MyClass1
Dim objClass2 As New MyClass1
Dim objList As New List(Of MyClass1)
Dim objFieldID As New ModelField
Dim objFieldName As New ModelField
Dim objModel As New Model
Dim objRowSelection As New RowSelectionModel
Dim objPar As New Parameter
objFieldID.Name = "myID"
objFieldName.Name = "myName"
objModel.Fields.Add(objFieldID)
objModel.Fields.Add(objFieldName)
myStore.Model.Clear()
myStore.Model.Add(objModel)
objClass1.myID = "hardenID"
objClass1.myName = "hardenName"
objClass2.myID = "JuecyID"
objClass2.myName = "JuecyName"
objList.Add(objClass1)
objList.Add(objClass2)
myStore.DataSource = objList
myStore.DataBind()
objColumnID.Text = "myID"
objColumnID.DataIndex = "myID"
objColumnName.Text = "myName"
objColumnName.DataIndex = "myName"
myGridPanel.ColumnModel.Add(objColumnID)
myGridPanel.ColumnModel.Add(objColumnName)
myGridPanel.StoreID = myStore.ID
myGridPanel.Width = 400
myGridPanel.Height = 300
objRowSelection.Mode = SelectionMode.Single
myGridPanel.SelectionModel.Clear()
myGridPanel.SelectionModel.Add(objRowSelection)
objPar.Mode = ParameterMode.Raw
objPar.Name = "values"
objPar.Value = "Ext.encode(#{" & myGridPanel.ID & "}.getRowsValues({selectedOnly:true}))"
myGridPanel.DirectEvents.Select.ExtraParams.Add(objPar)
AddHandler myGridPanel.DirectEvents.Select.Event, AddressOf SelectionRow
End Sub
(2) 行选择事件的定义,本质上为完成行选择事件后,通过委托调用一个方法,由于没有定义行选择事件,所以可以把委托对应的方法广义上可以理解为行选择事件
<DirectMethod>
Public Sub SelectionRow(sender As Object, e As DirectEventArgs)
Dim strJSON As String = e.ExtraParams(0).Value
Dim objList As New List(Of MyClass1)
objList = Newtonsoft.Json.JsonConvert.DeserializeObject(Of List(Of MyClass1))(strJSON)
If (Not IsNothing(objList)) Then
Ext.Net.X.Msg.Alert("welcome", objList(0).myID).Show()
End If
End Sub
End Class
3 (上文所用到的类的定义)
Namespace mySpace
Public Class MyClass1
Private Property _myID As String
Private Property _myName As String
Private Property _Y As Integer
Public Property X As Integer
Public Property myID As String
Get
Return _myID
End Get
Set(value As String)
_myID = value
End Set
End Property
Public Property myName As String
Get
Return _myName
End Get
Set(value As String)
_myName = value
End Set
End Property
End Class
End Namespace
相关文章推荐
- js_前台页面如何设置radio、checkbox、select三者的值以及绑定事件,方便后台接收数据
- Asp.net 后台绑定数据,前台没有反应的灵异事件. 八成有UpdatePanel 造成.
- 后台将数据传回前台的三种绑定方式(Model,Map,ModelAndView)
- 201507221403_《backbone之一——新建模型和集合、实例化模型、模型上监听事件的方法、模型设置和获取后台数据、配置理由方法、视图绑定事件的方法、绑定模型等》
- 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中
- ASP.NET中使用JSON方便实现前台与后台的数据交换
- JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
- Magento多语言设置――优化前台与后台实现方法
- 如何实现后台向前台传数据
- vue.js过滤器+ajax实现事件监听及后台php数据交互实例
- Magento多语言设置——优化前台与后台实现方法
- ASP.NET中使用JSON方便实现前台与后台的数据交换
- ASP.NET中RadioButtonList绑定后台数据后触发点击事件
- Struts2从后台传递数据到前台的主要方法和流程
- layer实现在前台删除前确认弹出框,并回调后台删除事件
- ADS--图像缩放与剪裁(只是完成了前台的功能,传送数据到后台的功能待完成)
- C# Datagridview绑定数据后将一列设置为DataGridViewLinkColumn的方法
- Spring MVC处理前台到后台绑定时间格式、doble等数据的解决方式
- Struts2从后台传递数据到前台的主要方法和流程
- 后台传递数据绑定前台下拉框