前台:
<asp:DataList
ID="DataListType"
OnItemCommand="DataListType_ItemCommand"
SelectedItemStyle-BackColor="Yellow"
DataKeyField="typeid"
Runat="Server" Width="388px" RepeatColumns="6" RepeatDirection="Horizontal">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1"
Text='<%# Eval("typename") %>'
Runat="Server" />
</ItemTemplate>
<SelectedItemStyle BackColor="Yellow" />
</asp:DataList>
<asp:GridView ID="DataGridArticle" runat="server" AutoGenerateColumns="False" Width="623px" ShowHeader="False">
<Columns>
<asp:BoundField DataField="Title" />
<asp:BoundField DataField="UpdateTime" DataFormatString="{0:MM-dd}" />
</Columns>
</asp:GridView>
后台:
DataSet ds;
protected void Page_Load(object sender, EventArgs e)
{
OleDbDataAdapter dr;
ds = (DataSet)Cache["Store"];
if (ds == null)
{
ds = new DataSet();
string strDBPath = System.Configuration.ConfigurationSettings.AppSettings["DBPath"];
string strConn = System.Configuration.ConfigurationSettings.AppSettings["Connection"] + Server.MapPath(strDBPath);
OleDbConnection myConnection = new OleDbConnection(strConn);
dr = new OleDbDataAdapter("Select * From ArticleType", myConnection);
myConnection.Open();
dr.Fill(ds, "ArticleType");
dr.SelectCommand = new OleDbCommand("Select * from Article", myConnection);
dr.Fill(ds, "Article");
myConnection.Close();
//DataSet ds = (DataSet)Cache["Store"];
}
if (!IsPostBack)
{
DataListType.DataSource = ds;
DataListType.DataMember = "ArticleType";
DataListType.DataBind();
}
}
public void DataListType_ItemCommand(object s, DataListCommandEventArgs e)
{
DataView dv;
int ID;
// Select the Chosen Category
DataListType.SelectedIndex = e.Item.ItemIndex;
// get CategoryID from DataKeys Collection
ID = System.Convert.ToInt32(DataListType.DataKeys[e.Item.ItemIndex]);
// Filter the Products
dv = ds.Tables["Article"].DefaultView;
dv.RowFilter = "typeid=" + ID;
DataGridArticle.DataSource = dv;
DataGridArticle.DataBind();
}