< %@ importar namespace = "system.data.sqlclient" %>
< %@ importar namespace = "system.data" %>
<script runat = "server">
Dim ConnorthWind como SQLConnection
StrSQL dim Dim como string
Strselect escuro como string
Dim IntstartIndex como inteiro
Dim IntendIndex como inteiro
Dim IntrecordCount como Inteiro
Dim CMDSQL como SQLCommand
Sub Page_Load
btnfirst.text = "首页"
btnprev.text = "上一页"
btnnext.text = "下一页"
btnlast.text = "末页"
ConnorthWind = new SQLConnection ("Server = 192.168.4.1; uid = SA; PWD = 111111; Database = Yourdbname")
se não o ispostback então
bindDataGrid
final se
final sub
sub -bindDataGrid
Dim CmdSelect como SQLCommand
Dim DtrrecordCount como sqldatareader
IntendIndex = dgrdproducts.pagesize
cmdSelect = new SqlCommand ("Jornais", Connorthwind)
cmdSelect.CommandType = CommandType.StoredProcedure
cmdSelect.parameters.add ("@PageIndex", intstartIndex)
cmdSelect.parameters.add ("@Pagesize", IntendIndex)
Connorthwind.open ()
dtrrecordCount = cmdSelect.execteReader ()
enquanto dtrRecordCount.read ()
IntrecordCount = DtrRecordCount (0)
termine enquanto
dgrdproducts.virtualItemCount = (IntrecordCount / dgrdproducts.pagesize)
dtrrecordCount.NextResult ()
dGrdProducts.DataSource = dtrrecordCount
dgrdproducts.databind ()
Connorthwind.close ()
final sub
subdgrdproducts_pageIndExchanged (s como objeto, e como datagridpageChangedEventArgs)
intstartIndex = e.NewPageIndex
dgrdproducts.currentPageIndex = e.NewPageIndex
bindDataGrid
final sub
Sub PagerButtonClick (Byval remetente como objeto, ByVal e como EventArgs)
Dim arg como string = sender.ComMandargument
Selecione Case Arg
Caso "Próximo"
if (dgrdproducts.currentpageIndex <(dgrdproducts.pageCount - 1)) Então
dGrdProducts.CurrentPageIndex += 1
final se
caso "prev"
if (dgrdproducts.currentpageIndex> 0) Então
dGrdProducts.CurrentPageIndex -= 1
final se
caso "último"
dgrdproducts.currentpageIndex = (dgrdproducts.pageCount - 1)
caso mais
'Número da página
dgrdproducts.currentpageIndex = System.convert.toint32 (arg)
final Selecione
intstartIndex = dgrdproducts.currentpageIndex
bindDataGrid
final sub
subdgrdproducts_editCommand (s como objeto, e como datagridCommandeventargs)
dgrdproducts.editItemIndex = E.Item.ItemIndex
intstartIndex = dgrdproducts.currentpageIndex
bindDataGrid
final sub
subdgrdproducts_updatecommand (s como objeto, e como datagridCommandeventargs)
Dim IntarticleId como inteiro
Dim txttopic como caixa de texto
Dim txteditor como caixa de texto
Dim strtopic como string
Dim Streditor como string
IntarticleId = dgrdproducts.datakeys (E.Item.ItemIndex)
txttopic = E.Item.Cells (1) .Controls (0)
txteditor = E.Item.Cells (2) .Controls (0)
strtopic = txttopic.text
sTreditor = txteditor.text
strsql = "Atualize tb_article Set [email protegido]" _
& "[Email protegido] onde [email protegido]"
CMDSQL = novo SQLCommand (StrSQL, Connorthwind)
cmdsql.parameters.add ("@topic", strtopic)
cmdsql.parameters.add ("@editor", streditor)
cmdsql.parameters.add ("@articleId", IntarticleId)
Connorthwind.open ()
cmdsql.executenonQuery ()
Connorthwind.close ()
dgrdproducts.editItemIndex = -1
bindDataGrid
final sub
subdgrdproducts_cancelcommand (s como objeto, e como datagridCommandeventargs)
dgrdproducts.editItemIndex = -1
bindDataGrid
final sub
</script>
<html>
<head> <title> datagridcustompaging.aspx </title> </head>
<Body>
<form runat = "server">
<asp: datagrid runat = "servidor"
id = "dGrdProducts"
oneditCommand = "dgrdproducts_editCommand"
OnUpDateCommand = "DGRDProducts_Updatecommand"
ONCANCELCOMAND = "DGRDPRODUCTS_CANCELCOMMAND"
Datakeyfield = "a_articleId"
AutoGeneratecolumns = "false"
showheader = "true"
allowPaging = "true"
permitircustompaging = "true"
HeaderStyle-backcolor = "Salmon"
Pagesize = "10"
onPageIndexchanged = "DGRDProducts_PageIndexchanged"
PagersTyle-Mode = "NumericPages"
alternatingItemstyle-backcolor = "#eeaaee"
font-size = "10pt"
font-name = "Verdana"
CellSpacacing = "0"
CellPadding = "3"
Gridlines = "Ambos"
Borderwidth = "1"
BorderColor = "Black"
PagersTyle-Horizontalalign = "Right">
<alternatingItemstyle backcolor = "#eeeeee"> </alternatingItemstyle>
<Columns>
<ASP: BoundColumn
HeaderText = "序列号"
Datafield = "ArtigoId"
readonly = "true" />
<ASP: BoundColumn
HeaderText = "标题"
Datafield = "Tópico" />
<ASP: BoundColumn
HeaderText = "编辑者"
Datafield = "Editor" />
<ASP: EditCommandColumn
EditText = "Editar!"
UpdateText = "Atualização!"
cancelText = "Cancelar!" />
<asp: hyperlinkcolumn
HeaderText = "编辑"
DataNavigateurlfield = "ArtigoId"
DataNavigateUrlFormatString = "detalhe.aspx? id = {0}"
texto = "编辑"/>
</colunas>
</asp: datagrid>
<asp: linkbutton id = "btnfirst" runat = "server" font-name = "verdana" font-size = "8pt" intecolor = "Navy" commandArgument = "0"> </asp: linkbutton> & nbsp;
<asp: linkbutton id = "btnPrev" runat = "server" font-name = "verdana" font-size = "8pt" intecolor = "Navy" CommandArgument = "prev"> </asp: linkbutton> & nbsp;
<asp: linkbutton id = "btnnext" runat = "server" font-name = "verdana" font-size = "8pt" intecolor = "Navy" CommandArgument = "Next"> </asp: linkbutton> & nbsp;
<asp: linkbutton id = "btnlast" runat = "server" font-name = "verdana" font-size = "8pt" inceolor = "Navy" CommandArgument = "last"> </asp: linkbutton>
</morm>
</html>
下面是存储过程
Crie procedimento em jornais
(
@PageIndex int,
@Pagesize int
)
como
começar
Declare @PageLowerBound Int
Declare @PageUpperBound Int
Declare @RowStoreturn Int
- Primeiro defina o RowCount
Definir @RowStoreTurn = @Pagesize * (@PageIndex + 1)
Definir RowCount @RowStoreturn
- Defina os limites da página
Definir @PagElowerBound = @Pagesize * @PageIndex
SET @PageUpperBound = @PageLowerBound + @Pagesize + 1
- Crie uma tabela temporária para armazenar os resultados selecionados
Crie a tabela #PageIndex
(
indexId int identidade (1, 1) não nula,
ArtigoId int,
)
- Insira na tabela de temperatura
Inserir no #PageIndex (ArtigoId)
Selecione
artigo
de
nome da mesa
ordem por
Artigod Desc
- Contagem total de retorno
Selecione a contagem (ArtigoId) do tableName
- Retornar os resultados da paginação
Selecione
O.articleId, O.Topic, editor
de
nome de tabela o,
#PageIndex PageIndex
onde
o.articleId = PageIndex.articleId e
PageIndex.indexid> @PagElowerBound e
PageIndex.IndexID <@PageUperbound
ordem por
PageIndex.indexid
fim