请各位帮小弟看查一下代码,谢谢
yi63 2005-03-30 11:26:41 <%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Page Language="C#" Debug="true" %>
<html>
<script language="C#" runat="server">
SqlConnection myConnection;
void Page_Load(Object sender, EventArgs e)
{
//判断是否隐藏PagerStyle-Mode
if (chk1.Checked)
{
MyDataGrid.PagerStyle.Visible=true;
}
else
{
MyDataGrid.PagerStyle.Visible=false;
}
BindGrid();
}
void BindGrid()
{
myConnection = new SqlConnection("server=(local);database=cnlydb;uid=sa;pwd=");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from base", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "base");
MyDataGrid.DataSource=ds.Tables["base"].DefaultView;
MyDataGrid.DataBind();
ShowStats();
}
void PagerButtonClick(Object sender, EventArgs e)
{
//获得LinkButton的参数值
String arg = ((LinkButton)sender).CommandArgument;
switch(arg)
{
case ("next"):
if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
MyDataGrid.CurrentPageIndex ++;
break;
case ("prev"):
if (MyDataGrid.CurrentPageIndex > 0)
MyDataGrid.CurrentPageIndex --;
break;
case ("last"):
MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
break;
default:
//本页值
MyDataGrid.CurrentPageIndex = Int32.Parse(arg);
break;
}
BindGrid();
}
void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e)
{
MyDataGrid.CurrentPageIndex = e.NewPageIndex;
BindGrid();
//处理按下数字的方法
}
void ShowStats()
{
//显示页面信息
lblCurrentIndex.Text = "当前页数为: " + ((int)MyDataGrid.CurrentPageIndex+1);
lblPageCount.Text = "总页数是: " + MyDataGrid.PageCount;
}
public void MyDataGrid_Edit(Object sender, DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex = (int)e.Item.ItemIndex;
BindGrid();
}
public void MyDataGrid_Cancel(Object sender, DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex = -1;
BindGrid();
}
public void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e)
{
String updateCmd = "UPDATE base SET id = @id, kind = @kind, i5 = @i5, i6 = @i6, time = @time where id = @id";
SqlCommand myCommand = new SqlCommand(updateCmd, myConnection);
myCommand.Parameters.Add(new SqlParameter("@id", SqlDbType.Int, 4));
myCommand.Parameters.Add(new SqlParameter("@kind", SqlDbType.NVarChar, 50));
myCommand.Parameters.Add(new SqlParameter("@i5", SqlDbType.NVarChar, 50));
myCommand.Parameters.Add(new SqlParameter("@i6", SqlDbType.NText, 16));
myCommand.Parameters.Add(new SqlParameter("@time", SqlDbType.SmallDateTime, 4));
myCommand.Parameters["@id"].Value = MyDataGrid.DataKeys[(int)e.Item.ItemIndex];
Message.InnerHtml = "";
if ( Message.InnerHtml != "" )
{
Message.Style["color"] = "red";
return;
}
myCommand.Connection.Open();
try
{
myCommand.ExecuteNonQuery();
Message.InnerHtml = "<b>Record Updated</b><br>" + updateCmd;
MyDataGrid.EditItemIndex = -1;
}
catch (SqlException exc)
{
if (exc.Number == 2627)
Message.InnerHtml = "ERROR: A record already exists with the same primary key";
else
Message.InnerHtml = "ERROR: Could not update record, please ensure the fields are correctly filled out" + updateCmd;
Message.Style["color"] = "red";
}
myCommand.Connection.Close();
BindGrid();
}
</script>
<body>
<form runat=server>
<table width="600" border="0">
<tr>
<td><asp:LinkButton ID="btnFirst" runat="server"
Text="首页"
CommandArgument="0"
ForeColor="navy"
Font-Name="verdana" Font-Size="8pt"
OnClick="PagerButtonClick"
/>
<asp:LinkButton ID="btnPrev" runat="server"
Text="前页"
CommandArgument="prev"
ForeColor="navy"
Font-Name="verdana" Font-Size="8pt"
OnClick="PagerButtonClick"
/>
<asp:LinkButton ID="btnNext" runat="server"
Text="后页"
CommandArgument="next"
ForeColor="navy"
Font-Name="verdana" Font-Size="8pt"
OnClick="PagerButtonClick"
/>
<asp:LinkButton ID="btnLast" runat="server"
Text="末页"
CommandArgument="last"
ForeColor="navy"
Font-Name="verdana" Font-Size="8pt"
OnClick="PagerButtonClick"
/></td>
<td> </td>
<td><asp:CheckBox ID="chk1" runat="server"
Text="显示内置的页数"
Font-Name="Verdana"
Font-Size="8pt"
AutoPostBack="true"
/></td>
<td><font face="Verdana">
<asp:Label ID="lblCurrentIndex" runat="server" />
</font></td>
<td><font face="Verdana">
<asp:Label ID="lblPageCount" runat="server" />
</font></td>
</tr>
<tr>
<td colspan="5">
<span id="Message" EnableViewState="false" style="font: arial 11pt;" runat="server"/>
</td></tr>
<tr>
<td colspan="5">
<ASP:DataGrid
id="MyDataGrid"
runat="server"
AllowPaging="True"
PageSize="5"
PagerStyle-Mode="NumericPages"
PagerStyle-HorizontalAlign="Right"
OnPageIndexChanged="MyDataGrid_Page"
BorderColor="black"
BorderWidth="1"
GridLines="Both"
CellPadding="3"
CellSpacing="0"
DataKeyField="id"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AlternatingItemStyle-BackColor="#eeeeee"
AutoGenerateColumns="false"
OnEditCommand="MyDataGrid_Edit"
OnCancelCommand="MyDataGrid_Cancel"
OnUpdateCommand="MyDataGrid_Update"
>
<Columns>
<asp:EditCommandColumn EditText="编辑" CancelText="取消" UpdateText="更新" />
<asp:BoundColumn HeaderText="id" SortExpression="id" ReadOnly="True" DataField="id" ItemStyle-Wrap="false"/>
<asp:BoundColumn HeaderText="kind" SortExpression="kind" DataField="kind" ItemStyle-Wrap="false"/>
<asp:BoundColumn HeaderText="i5" SortExpression="i5" DataField="i5" ItemStyle-Wrap="false"/>
<asp:BoundColumn HeaderText="i6" SortExpression="i6" DataField="i6" ItemStyle-Wrap="false" ItemStyle-Width="200"/>
<asp:BoundColumn HeaderText="time" SortExpression="time" DataField="time" ItemStyle-Wrap="false"/>
</Columns>
</ASP:DataGrid></td>
</tr>
</table>
</form>
</body>
</html>