GridView BS 用法

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging"
    PageSize
="5" AutoGenerateColumns="False" DataKeyNames="id,name" OnRowCommand="GridView1_RowCommand">
    
<PagerSettings FirstPageText="首页" LastPageText="尾页" Mode="NextPreviousFirstLast"
        NextPageText
="下一页" PreviousPageText="上一页" />
    
<Columns>
        
<asp:BoundField DataField="name" HeaderText="姓名" />
        
<asp:BoundField DataField="age" HeaderText="年龄" />
        
<asp:BoundField DataField="add" HeaderText="地址" />
        
<asp:ButtonField CommandName="add" Text="添加" />
        
<asp:ButtonField CommandName="del" Text="删除" />
    
</Columns>
</asp:GridView>

protected void Page_Load(object sender, EventArgs e)
    {
        
if (!IsPostBack)
        {
            DataToBind();
        }
    }

    
private void DataToBind()
    {
        GridView1.DataSource 
= GridViewSource();
        GridView1.DataBind();
    }

    
private List<Log> GridViewSource()
    {
        List
<Log> logs = new List<Log>();        
        
for (int i = 1; i < 21; i++)
        {
            Log log 
= new Log();
            log.Id 
= i;
            log.Title 
= "Title" + i;
            log.LogContext 
= "LogContext" + i;
            logs.Add(log);
        }
        
return logs;
    }

    
public class Log
    {
        
private int id;

        
public int Id
        {
            
get { return id; }
            
set { id = value; }
        }

        
private string title;

        
public string Title
        {
            
get { return title; }
            
set { title = value; }
        }

        
private string logContext;

        
public string LogContext
        {
            
get { return logContext; }
            
set { logContext = value; }
        }
    }

    
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        
if (e.CommandName == "add")
        {
            
//e.CommandArgument 为当前页选定的行,下标从 0 开始
            
//GridView1.DataKeys[index].Values[2].ToString() 
            
//为当前选中的行所对应的在 DataKeyNames="Id,Title,LogContext" 的值。
            int index = Convert.ToInt32(e.CommandArgument);
            //此时输出的是选中行的 Title 的值
            
string now = GridView1.DataKeys[index].Values[1].ToString(); 
            Response.Write(index + " | " + now);
        }
    }
    
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex 
= e.NewPageIndex;
        DataToBind();
    }
posted @ 2008-10-14 21:28  宋永波  阅读(191)  评论(0)    收藏  举报