代码如下:
----------------
office.aspx
-------------------<%@ Page Language="VB" Trace="false" Inherits="BWSLib.OFFICEPage" src="Office.vb" AutoEventWireUp="false" %>
<%@ Register TagPrefix="expo" Namespace="BWSLib.Controls" Assembly="MyEditableGrid" %><HTML>
<HEAD>
<title>Country</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<link rel="stylesheet" href="../css/register.css">
<style>
INPUT { BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; FONT-SIZE: xx-small; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: verdana }A:hover { COLOR: red; TEXT-DECORATION: underline }
A { TEXT-DECORATION: none }
</style>
</HEAD>
<BODY bgcolor="ivory" link="blue" vlink="blue">
<form runat="server" ID="Form2">
<P><FONT face="宋体"></FONT> </P>
<P> </P>
<P align="center">
<asp:Image id="Image1" runat="server" ImageUrl="../Img/log.gif"></asp:Image><BR>
<strong>Office Management<BR>
</strong>
</P>
<P align="center">
<font face="Verdana, Helvetica, sans-serif"><strong>Please Select A Country</strong> :</font>
<asp:DropDownList id="DropDownList1"
runat="server" autopostback="true"
Font-Name = "Verdana, Helvetica, sans-serif"
Font-Size = "xx-small"
></asp:DropDownList><expo:MyEditableGrid id="grid" runat="server"
AutoGenerateColumns="false"
PageSize="5"
Font-Name = "Verdana, Helvetica, sans-serif"
Font-Size = "xx-small"
DataKeyField="OFFICE_ID"
CellSpacing="0" CellPadding="3"
BorderStyle="solid" BorderColor="skyblue" BorderWidth="1" GridLines="both"
OnInitRow="InitRow"
OnUpdateView="UpdateView"
OnSaveData="SaveData"
OnInsertData="InsertData"
OnDeleteData="DeleteData">
<COLUMNS>
<ASP:BOUNDCOLUMN runat="server" headertext="ID" datafield="OFFICE_ID" readonly="true" />
<ASP:BOUNDCOLUMN runat="server" headertext="Office Code" datafield="OFFICE_CODE" />
<ASP:BOUNDCOLUMN runat="server" headertext="Exchange" datafield="OFFICE_EXCHANGE" />
<ASP:BOUNDCOLUMN runat="server" headertext="Office Name" datafield="OFFICE_NAME" />
<ASP:BOUNDCOLUMN runat="server" headertext="Country" readonly="true" datafield="COUNTRY_CODE" />
</COLUMNS>
<HEADERSTYLE backcolor="skyblue"
font-name= "Verdana, Helvetica, sans-serif"
font-size="7pt"
font-bold="true" />
<ITEMSTYLE backcolor="#eeeeee" />
<PAGERSTYLE backcolor="skyblue"
font-size="10pt"
font-name="webdings"
PrevPageText="3"
NextPageText="4" />
</EXPO:MYEDITABLEGRID>
<asp:linkbutton runat="server"
Font-Name="verdana"
Font-Size="x-small"
Text="Insert"
onclick="OnInsert"
id="Linkbutton1" />
</P>
</form>
</BODY>
</HTML>
----------------
office.aspx
-------------------<%@ Page Language="VB" Trace="false" Inherits="BWSLib.OFFICEPage" src="Office.vb" AutoEventWireUp="false" %>
<%@ Register TagPrefix="expo" Namespace="BWSLib.Controls" Assembly="MyEditableGrid" %><HTML>
<HEAD>
<title>Country</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<link rel="stylesheet" href="../css/register.css">
<style>
INPUT { BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; FONT-SIZE: xx-small; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; FONT-FAMILY: verdana }A:hover { COLOR: red; TEXT-DECORATION: underline }
A { TEXT-DECORATION: none }
</style>
</HEAD>
<BODY bgcolor="ivory" link="blue" vlink="blue">
<form runat="server" ID="Form2">
<P><FONT face="宋体"></FONT> </P>
<P> </P>
<P align="center">
<asp:Image id="Image1" runat="server" ImageUrl="../Img/log.gif"></asp:Image><BR>
<strong>Office Management<BR>
</strong>
</P>
<P align="center">
<font face="Verdana, Helvetica, sans-serif"><strong>Please Select A Country</strong> :</font>
<asp:DropDownList id="DropDownList1"
runat="server" autopostback="true"
Font-Name = "Verdana, Helvetica, sans-serif"
Font-Size = "xx-small"
></asp:DropDownList><expo:MyEditableGrid id="grid" runat="server"
AutoGenerateColumns="false"
PageSize="5"
Font-Name = "Verdana, Helvetica, sans-serif"
Font-Size = "xx-small"
DataKeyField="OFFICE_ID"
CellSpacing="0" CellPadding="3"
BorderStyle="solid" BorderColor="skyblue" BorderWidth="1" GridLines="both"
OnInitRow="InitRow"
OnUpdateView="UpdateView"
OnSaveData="SaveData"
OnInsertData="InsertData"
OnDeleteData="DeleteData">
<COLUMNS>
<ASP:BOUNDCOLUMN runat="server" headertext="ID" datafield="OFFICE_ID" readonly="true" />
<ASP:BOUNDCOLUMN runat="server" headertext="Office Code" datafield="OFFICE_CODE" />
<ASP:BOUNDCOLUMN runat="server" headertext="Exchange" datafield="OFFICE_EXCHANGE" />
<ASP:BOUNDCOLUMN runat="server" headertext="Office Name" datafield="OFFICE_NAME" />
<ASP:BOUNDCOLUMN runat="server" headertext="Country" readonly="true" datafield="COUNTRY_CODE" />
</COLUMNS>
<HEADERSTYLE backcolor="skyblue"
font-name= "Verdana, Helvetica, sans-serif"
font-size="7pt"
font-bold="true" />
<ITEMSTYLE backcolor="#eeeeee" />
<PAGERSTYLE backcolor="skyblue"
font-size="10pt"
font-name="webdings"
PrevPageText="3"
NextPageText="4" />
</EXPO:MYEDITABLEGRID>
<asp:linkbutton runat="server"
Font-Name="verdana"
Font-Size="x-small"
Text="Insert"
onclick="OnInsert"
id="Linkbutton1" />
</P>
</form>
</BODY>
</HTML>
解决方案 »
- jquery获取checkBox选中情况。
- RequiredFieldValidator控件,怎么指定仅仅一个按钮按下时才验证。
- AJAX 后台怎么取不到直
- 寻求每个节点的Path的页面缓存的问题
- 新建一个空页面,然后添加一个init事件,然后打个断点,然后编译,可以程序怎么没跑到断点那里。
- 用户输入密码后回车,如何自动调用指定按钮的事件!
- 100分急救asp.net怎么写短信上下行程序
- 简单的一句JQ,谁帮忙解释下。我已经好久没有写过程序了。忘的一干二净了。
- 大家帮一下,一个很简单的问题
- 简单问题,分页控件AspnetPager在地址传递的参数(如?page=)在哪的?
- .net下,有没有类似weblogic,websphere的商业化中间件?
- 关于CSDN左边树的一个问题。研究过的朋友进来帮帮忙好吗?
office.vb
-------------------------
Imports System
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Text
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.SqlClient
Imports BWSLib.Controls
Imports System.ConfigurationNamespace BWSLibPublic Class OFFICEPage
Inherits Page
' Declare as Public or Protected members all
' the controls in the layout
Protected grid As MyEditableGrid
Protected WithEvents Linkbutton1 As System.Web.UI.WebControls.LinkButton
Protected WithEvents DropDownList1 As System.Web.UI.WebControls.DropDownList
Protected m_connString As String
Dim CountryIDParam As Integer
' Page OnLoad
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
m_connString = ConfigurationSettings.AppSettings("CRMSQLOLEDBStrconn")
If Not IsPostBack Then
Bindlist(DropDownList1, "COUNTRY_NAME", "COUNTRY_ID", "SELECT * FROM COUNTRY_TAB")
CountryIDParam = 1
DataFromSourceToMemory(CountryIDParam)
UpdateDataView()
Else
grid.CurrentPageIndex = 0
If CountryIDParam <> Get_DropDownList1Value() Then
CountryIDParam = DropDownList1.SelectedValue
DataFromSourceToMemory(CountryIDParam)
UpdateDataView()
End If
End If
grid.CurrentPageIndex = 0
End Sub Private Function Get_DropDownList1Value() As Integer
Return DropDownList1.SelectedValue
End Function ' DataFromSourceToMemory
Private Sub DataFromSourceToMemory(ByVal idstr As Integer)
' Gets rows from the data source
Dim oDS As DataSet = PhysicalDataRead(idstr)
' Stores it in the Cache cache
Cache("MyData") = oDS
End Sub
' PhysicalDataRead
Private Function PhysicalDataRead(ByVal idstr As Integer) As DataSet
' Command and connection string
Dim strCmd As String = "SELECT * FROM OFFICE_TAB,COUNTRY_TAB WHERE OFFICE_TAB.OFFICE_COUNTRYID=COUNTRY_TAB.COUNTRY_ID AND COUNTRY_TAB.COUNTRY_ID= " & idstr
Dim da As OleDbDataAdapter = New OleDbDataAdapter(strCmd, m_connString)
Dim ds As DataSet = New DataSet
da.Fill(ds, "OFFICE_TAB") Return ds
End Function
' Returns data
Private Function GetData() As DataView
' Retrieves the data
Dim ds As DataSet = CType(Cache("MyData"), DataSet)
Dim dv As DataView = ds.Tables("OFFICE_TAB").DefaultView
Return dv
End Function ' Refresh the UI
Private Sub UpdateDataView()
grid.DataSource = GetData()
grid.DataBind()
End Sub ''''''''''' EVENT HANDLERS
' EVENT HANDLER: SaveData
Public Sub SaveData(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
Dim sb As StringBuilder = New StringBuilder("")
sb.Append("UPDATE OFFICE_TAB SET ")
sb.Append("OFFICE_CODE='{0}',")
sb.Append("OFFICE_EXCHANGE='{1}',")
sb.Append("OFFICE_NAME ='{2}' ")
sb.Append("WHERE OFFICE_ID={3}")
Dim cmd As String = sb.ToString() Dim OfficeCode As TextBox = CType(e.Item.Cells(1).Controls(0), TextBox)
Dim OfficeExchange As TextBox = CType(e.Item.Cells(2).Controls(0), TextBox)
Dim OfficeName As TextBox = CType(e.Item.Cells(3).Controls(0), TextBox) cmd = String.Format(cmd, OfficeCode.Text, OfficeExchange.Text, OfficeName.Text, grid.DataKeys(e.Item.ItemIndex)) ' Executes the command
Dim conn As OleDbConnection = New OleDbConnection(m_connString)
Dim c As OleDbCommand = New OleDbCommand(cmd, conn)
c.Connection.Open()
c.ExecuteNonQuery()
c.Connection.Close() DataFromSourceToMemory(CountryIDParam)
End Sub
Public Sub InsertData(ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Dim sb As StringBuilder = New StringBuilder("")
sb.Append("INSERT INTO OFFICE_TAB (OFFICE_CODE, OFFICE_EXCHANGE,OFFICE_NAME,OFFICE_COUNTRYID) VALUES(")
sb.Append("'{0}', '{1}', '{2}',{3})") Dim cmd As String = sb.ToString()
Dim OfficeCode As TextBox = CType(e.Item.Cells(1).Controls(0), TextBox)
Dim OfficeExchange As TextBox = CType(e.Item.Cells(2).Controls(0), TextBox)
Dim OfficeName As TextBox = CType(e.Item.Cells(3).Controls(0), TextBox)
cmd = String.Format(cmd, OfficeCode.Text, OfficeExchange.Text, OfficeName.Text, CountryIDParam) ' Executes the command
Dim conn As OleDbConnection = New OleDbConnection(m_connString)
Dim c As OleDbCommand = New OleDbCommand(cmd, conn)
c.Connection.Open()
c.ExecuteNonQuery()
c.Connection.Close() DataFromSourceToMemory(CountryIDParam)
End Sub
' EVENT HANDLER: DeleteData
Public Sub DeleteData(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
Dim cmd As String = "DELETE FROM OFFICE_TAB WHERE OFFICE_ID={0}"
cmd = String.Format(cmd, grid.DataKeys(e.Item.ItemIndex)) ' Executes the command
Dim conn As OleDbConnection = New OleDbConnection(m_connString)
Dim c As OleDbCommand = New OleDbCommand(cmd, conn)
c.Connection.Open()
c.ExecuteNonQuery()
c.Connection.Close() DataFromSourceToMemory(CountryIDParam)
End Sub ' EVENT HANDLER: OnInsert
Public Sub OnInsert(ByVal sender As Object, ByVal e As EventArgs)
grid.AddNewRow = True
UpdateDataView()
End Sub ' EVENT HANDLER: InitRow
Public Sub InitRow(ByVal sender As Object, ByVal e As DataGridInitRowEventArgs)
e.Row("OFFICE_EXCHANGE") = "0755-2502"
End Sub
' EVENT HANDLER: UpdateView
Public Sub UpdateView(ByVal sender As Object, ByVal e As EventArgs)
UpdateDataView()
End Sub Private Sub InitializeComponent()
End Sub 'LOAD DropDownList context
Private Sub Bindlist(ByVal T As DropDownList, ByVal nameParam As String, ByVal valueParam As String, ByVal SQLStr As String)
Dim MyConnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("CRMStrconn"))
Dim MySqlCommand As SqlDataAdapter = New SqlDataAdapter(SQLStr, MyConnection)
Dim ds As DataSet = New DataSet MySqlCommand.Fill(ds, nameParam)
T.DataSource = ds.Tables(nameParam).DefaultView
T.DataTextField = nameParam
T.DataValueField = valueParam
T.DataBind()
End Sub End Class
End Namespace错误信息如下:
=============无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。源错误:
行 76: Private Sub UpdateDataView()
行 77: grid.DataSource = GetData()
行 78: grid.DataBind()
行 79: End Sub
行 80:
源文件: C:\Web\CRM\Admin\Office.vb 行: 78 堆栈跟踪:
[HttpException (0x80004005): 无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。]
System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(Boolean useDataSource)
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)
System.Web.UI.WebControls.BaseDataList.DataBind()
BWSLib.OFFICEPage.UpdateDataView() in C:\Web\CRM\Admin\Office.vb:78
BWSLib.OFFICEPage.OnInsert(Object sender, EventArgs e) in C:\Web\CRM\Admin\Office.vb:155
System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e)
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain() 如何解决,急
代码是长了一点,没什么技术含量,但是我还是帖,要不问题会搁置,
没办法,祥细点,便于别人能清楚一些,容易发现问题的所在,不好意
我没有用过
http://www.microsoft.com/china/MSDN/library/NetFramework/default.mspx
不知道这个和你的有没相似之处
你再看看吧
http://community.csdn.net/Expert/TopicView1.asp?id=3765482