Trong bài viết Tạo hiệu ứng Play/Pause/Show bài viết với asp.net tôi có hướng dẫn bạn sử dụng thư viện obout_Show_Net.dll để tạo hiệu ứng cho bài viết. Bài này tôi viết hướng dẫn thực hiện lấy dữ liệu từ SQL server
Các Style sheet bạn có thể lấy về từ bài viết Tạo hiệu ứng Play/Pause/Show bài viết với asp.net tôi sẽ không trình bày ở đây nữa. Còn cơ sở dữ liệu bạn có thể download từ bài viết Asp.net xây dựng menu với ajax Accodion dữ liệu từ SQL server hoặc tìm lại trên site dotnet này cũng có mấy bài viết có liên kết download DB này. Ở đây tôi chỉ chú trọng vào viết code cs thôi.
Trong code của aspx bạn không cần khai báo dữ liệu của obshow:Panel nữa. Dữ liệu này bạn sẽ lấy nó trong csdl. do đó code của aspx chỉ cần:
<obshow:Show id="Show1"
runat="server" StyleFolder="Common/style5/"
Width="610" Height="300"
ShowType="Show" ManualChanger="true" >
<Changer Type="Both"
ArrowType="Side2"
Height="30" Width="500"
HorizontalAlign="Left" />
</obshow:Show>
Giờ trong code cs bạn viết các hàm như sau:
1. Hàm thực thi câu truy vấn trả về một DataTable
private DataTable QueryToDataTable(string strSQL)
{
DataTable dtbTmp = new DataTable();
string connString = @"
Server =.\SQL2005;Initial Catalog=DemoSlide;User ID=sa;Password=sa";
SqlConnection conn = new SqlConnection(connString);
try
{
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);
DataSet ds = new DataSet();
da.Fill(ds, "GetData");
dtbTmp = ds.Tables[0];
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
conn.Close();
}
return dtbTmp;
}
2. Hàm Page_Load (Bạn có thể viết thành một hàm riêng để Load dữ liệu và gọi hàm này trong Page_Load)
protected void Page_Load(object sender, EventArgs e)
{
OboutInc.Show.Panel nPanel = new OboutInc.Show.Panel();
string sql =@"
Select Top 5 TieuDe, DienGiai,AnhDaiDien
From TB_BaiViet order by idBaiViet desc";
DataTable dtb = QueryToDataTable(sql);
string strHTML = "";
if (dtb.Rows.Count > 0)
{
foreach (DataRow dr in dtb.Rows)
{
strHTML = @"<div class='divImage'>
<img src='"+dr["AnhDaiDien"]+@"' />
</div>
<div class='divDescription'>
<span class='title'>"+dr["TieuDe"]+@"</span>
<span>"+dr["DienGiai"]+@"</span>
</div>";
Show1.AddHtmlPanel(strHTML);
}
}
dtb.Dispose();
nPanel = null;
}