摘要:大腸包Literal簡易版本
最近有一個小案子,前輩請我把原本一個網站用點選後會縮放功能來呈獻出來。這時候我想到了大腸包小腸這個案子。
當初看到MIS2000LAB 的書籍裡面有這樣功能,但霎那間我覺得應該沒有這樣需求吧。
沒想到竟然被我遇到這個功能,只能說當初沒有學好妳看用到了唷(對不起我的新台幣)。
接下來由我來把這個功能簡易的跟大家說一下。
目前這想功能不是Gridview包著GirdView,他是包著Literal,為什麼我不用GridView因為碰到了<br/>或著<a href=.....HTML標籤都會失靈,所以前輩教我用Literal。
一開始我們先把GridView拉出來點選編輯資料行=>TemplateField=>HeaderText 輸入你要的標題
記得要把自動產生欄位取消
接下來點選編輯樣版後續動作把 LinkButton和Literal進去
點選ItemTemplate放入兩個控制項進去記得先把Literal屬性內的Visible顯示為false
把LinkButton點選DataBindings的CommandArgument 自訂細節上面打入Container.DataItemIndex(用意就是每一個Girdview的Row會自己排序號
接下來LinkButton的Text 自訂細節上面打入Eval("title")單向繫結
也把Literal點選DataBindings的Text 自訂繫結打入Eval("summary")
唯一的一個重點少了CommandName這個到後面分頁後絕對會發生錯誤,至於上面要輸入些甚麼隨便各位。
我們來看瀏覽器開啟後的資料吧~當然你點選甚麼都沒有效果的
記得要點選RowCommand 把程式寫入進去才能夠正確執行。
接下來才是真正的重點實現出大腸包小腸簡意版本,至於裡面的程式碼內容不懂的地方請買Mis2000lab書籍
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Web.Configuration ;
using System.Data;
namespace WebApplication1
{
public partial class WebForm3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DBInit();
}
}
/*先把資料庫撈出來帶入到GirdView1*/
protected void DBInit()
{
SqlConnection Conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["TEST_DATA.MDFConnectionString"].ConnectionString);
SqlDataAdapter Adapter = new SqlDataAdapter("select*from test", Conn);
DataSet Set = new DataSet();
Adapter.Fill(Set, "test");
GridView1.DataSource = Set;
GridView1.DataBind();
}
/*實現簡易版的大腸包小腸*/
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "q") /*把我們之前設定的CommandName用if判斷*/
{
/*之前在ButtonLikn裡面的CommandArgument打的一大串我也看不懂的英文字
為了就是要算出你點選了第幾項*/
int index = int.Parse(e.CommandArgument.ToString());
/*第一次點選通常lasIndex為0*/
((Literal)GridView1.Rows[lasIndex].FindControl("Literal1")).Visible = false;
/*把index的值放入到GridView1.Rows內請注意電腦永遠從0開始*/
((Literal)GridView1.Rows[index].FindControl("Literal1")).Visible = true;
lasIndex = index;/*把點選的記錄檔放入到屬性暫存*/
}
}
/*把每次點選的值帶入進去*/
int lasIndex
{
get { if( ViewState["s"]==null)
return 0;
return (int)ViewState["s"];
}
set {
ViewState["s"] = value;
}
}
}
}
超感動的竟然會跑了耶
在這邊要感謝帶我的前輩給我指導,我才能夠學會這些功能。為了學習前被不藏私的精神。
我在這邊發表給有緣人看見。雖然比起其他人我真的超弱的,但是希望一步一腳印踏出去
為自己加油吧。
下一篇 如何作出分頁進階版本 我想睡了~下次在寫吧