GridView大腸包小腸簡易版

摘要:大腸包Literal簡易版本

最近有一個小案子,前輩請我把原本一個網站用點選後會縮放功能來呈獻出來。這時候我想到了大腸包小腸這個案子。
當初看到MIS2000LAB 的書籍裡面有這樣功能,但霎那間我覺得應該沒有這樣需求吧。blush
沒想到竟然被我遇到這個功能,只能說當初沒有學好妳看用到了唷(對不起我的新台幣)。
接下來由我來把這個功能簡易的跟大家說一下。
目前這想功能不是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;
            }
        
        }

     
    
    }
}








 

超感動的竟然會跑了耶

在這邊要感謝帶我的前輩給我指導,我才能夠學會這些功能。為了學習前被不藏私的精神。

我在這邊發表給有緣人看見。雖然比起其他人我真的超弱的,但是希望一步一腳印踏出去

為自己加油吧。

下一篇 如何作出分頁進階版本 我想睡了~下次在寫吧