Default.aspx文件 <form id="form1" runat="server">
<div>
<asp:RadioButton ID="Region" Visible="false" GroupName="datacheck" runat="server" Text="洲" AutoPostBack="true" OnCheckedChanged="Region_CheckedChanged" />
<asp:RadioButton ID="Country" Visible="false" GroupName="datacheck" runat="server" Text="國家" AutoPostBack="true" OnCheckedChanged="Country_CheckedChanged" />
<asp:RadioButton ID="Province" Visible="false" GroupName="datacheck" runat="server" Text="省" AutoPostBack="true" OnCheckedChanged="Province_CheckedChanged"/>
<asp:RadioButton ID="City" Visible="false" GroupName="datacheck" runat="server" Text="城市" AutoPostBack="true" OnCheckedChanged="City_CheckedChanged" />
<asp:RadioButton ID="Port" Visible="false" GroupName="datacheck" runat="server" Text="港口" AutoPostBack="true" OnCheckedChanged="Port_CheckedChanged" />
<br /> </div>
<div>
<asp:DataGrid ID="MyDataGrid" runat="server" AllowPaging="True" OnPageIndexChanged="MyDataGrid_PageIndexChanged" AllowSorting="True" >
<Columns>
<asp:EditCommandColumn CancelText="Cancel" EditText="Edit" UpdateText="Update" ButtonType="PushButton"></asp:EditCommandColumn>
<asp:ButtonColumn ButtonType="PushButton" CommandName="Insert" Text="Insert"></asp:ButtonColumn>
</Columns>
<FooterStyle BackColor="#CCCCCC" />
<SelectedItemStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Right" Mode="NumericPages" />
<ItemStyle BackColor="White" />
<HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
</asp:DataGrid>
</div>
</form>
CS文件:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Collections;public partial class _Default : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e)
{
if (!(Page.IsPostBack))
{ }
}
protected void fn_Datacheck(string cDataname)
{
String selectCmd = "select * from " + cDataname ;//動態SELECT語句 //連接數據庫
SqlConnection myConnection = new SqlConnection ("Data Source=SERVER04;Initial Catalog=takbo2006;Persist Security Info=True;User ID=sa;Password=takbo2006sa");
SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection);
//myCommand.SelectCommand.Parameters.Add(new SqlParameter ("@cDataname", SqlDbType.NVarChar, 2));
//myCommand.SelectCommand.Parameters["@cDataname"].Value = "基礎表";
//加載數據ds
DataSet ds = new DataSet();
myCommand.Fill(ds, "表名"); //加載數據進MyDataGrid
MyDataGrid.DataSource = ds.Tables[0].DefaultView;
MyDataGrid.DataBind();
} protected void Region_CheckedChanged(object sender, EventArgs e)
{
fn_Datacheck("Region");
}
protected void Country_CheckedChanged(object sender, EventArgs e)
{
fn_Datacheck("Country");
}
protected void Province_CheckedChanged(object sender, EventArgs e)
{
fn_Datacheck("Province");
}
protected void City_CheckedChanged(object sender, EventArgs e)
{
fn_Datacheck("City");
}
protected void Port_CheckedChanged(object sender, EventArgs e)
{
fn_Datacheck("Port");
}
protected void MyDataGrid_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
//MyDataGrid.CurrentPageIndex = e.NewPageIndex;
//MyDataGrid.DataBind();
}
}問題:每次點分頁的頁數就會重新Load一次頁面,請教達人解決方法!!
<div>
<asp:RadioButton ID="Region" Visible="false" GroupName="datacheck" runat="server" Text="洲" AutoPostBack="true" OnCheckedChanged="Region_CheckedChanged" />
<asp:RadioButton ID="Country" Visible="false" GroupName="datacheck" runat="server" Text="國家" AutoPostBack="true" OnCheckedChanged="Country_CheckedChanged" />
<asp:RadioButton ID="Province" Visible="false" GroupName="datacheck" runat="server" Text="省" AutoPostBack="true" OnCheckedChanged="Province_CheckedChanged"/>
<asp:RadioButton ID="City" Visible="false" GroupName="datacheck" runat="server" Text="城市" AutoPostBack="true" OnCheckedChanged="City_CheckedChanged" />
<asp:RadioButton ID="Port" Visible="false" GroupName="datacheck" runat="server" Text="港口" AutoPostBack="true" OnCheckedChanged="Port_CheckedChanged" />
<br /> </div>
<div>
<asp:DataGrid ID="MyDataGrid" runat="server" AllowPaging="True" OnPageIndexChanged="MyDataGrid_PageIndexChanged" AllowSorting="True" >
<Columns>
<asp:EditCommandColumn CancelText="Cancel" EditText="Edit" UpdateText="Update" ButtonType="PushButton"></asp:EditCommandColumn>
<asp:ButtonColumn ButtonType="PushButton" CommandName="Insert" Text="Insert"></asp:ButtonColumn>
</Columns>
<FooterStyle BackColor="#CCCCCC" />
<SelectedItemStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Right" Mode="NumericPages" />
<ItemStyle BackColor="White" />
<HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
</asp:DataGrid>
</div>
</form>
CS文件:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Collections;public partial class _Default : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e)
{
if (!(Page.IsPostBack))
{ }
}
protected void fn_Datacheck(string cDataname)
{
String selectCmd = "select * from " + cDataname ;//動態SELECT語句 //連接數據庫
SqlConnection myConnection = new SqlConnection ("Data Source=SERVER04;Initial Catalog=takbo2006;Persist Security Info=True;User ID=sa;Password=takbo2006sa");
SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection);
//myCommand.SelectCommand.Parameters.Add(new SqlParameter ("@cDataname", SqlDbType.NVarChar, 2));
//myCommand.SelectCommand.Parameters["@cDataname"].Value = "基礎表";
//加載數據ds
DataSet ds = new DataSet();
myCommand.Fill(ds, "表名"); //加載數據進MyDataGrid
MyDataGrid.DataSource = ds.Tables[0].DefaultView;
MyDataGrid.DataBind();
} protected void Region_CheckedChanged(object sender, EventArgs e)
{
fn_Datacheck("Region");
}
protected void Country_CheckedChanged(object sender, EventArgs e)
{
fn_Datacheck("Country");
}
protected void Province_CheckedChanged(object sender, EventArgs e)
{
fn_Datacheck("Province");
}
protected void City_CheckedChanged(object sender, EventArgs e)
{
fn_Datacheck("City");
}
protected void Port_CheckedChanged(object sender, EventArgs e)
{
fn_Datacheck("Port");
}
protected void MyDataGrid_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
//MyDataGrid.CurrentPageIndex = e.NewPageIndex;
//MyDataGrid.DataBind();
}
}問題:每次點分頁的頁數就會重新Load一次頁面,請教達人解決方法!!
我想我明白了你的意思了,但是現在的問題是這個dataname,怎么獲得 protected void MyDataGrid_PageIndexChanged(object source,DataGridPageChangedEventArgs e)
{ MyDataGrid.CurrentPageIndex = e.NewPageIndex;
fn_Datacheck(dataname); }我試過把dataname設為全局變量,但是沒次PAGE_LOAD后都變為空了.
将連接數據庫写到方法的外面,就是加到 protected void Page_Load(object sender, EventArgs e)
{
if (!(Page.IsPostBack))
{
//在这里加入数据绑定字段
fn_Datacheck(dataname)
//注意将dataname赋值
}
}
有前面,这样这个链接就全有了
同时,你的
protected void MyDataGrid_PageIndexChanged(object source,DataGridPageChangedEventArgs e)这个事件的应当是这样的protected void MyDataGrid_PageIndexChanged(object source,DataGridPageChangedEventArgs e)
{ MyDataGrid.CurrentPageIndex = e.NewPageIndex;
//fn_Datacheck(dataname);
MyDataGrid.DataBind(); //重新绑定数据
}