測試文字功能,小工具,標題

記錄很重要,不然會浪費很多時間在找以前的記憶

一個人的氣度,決定他未來的高度。
顯示具有 GridView 標籤的文章。 顯示所有文章
顯示具有 GridView 標籤的文章。 顯示所有文章

2014年7月6日 星期日

ASP.NET GridView 自己常用的記錄

增加一個按鈕

1.可以用RowCommand事件,不用另外在RowDataBound用e.Row.Attributes另外加事件上去

protected void GridView1_OnRowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName != "SendMail") return;
    int id = Convert.ToInt32(e.CommandArgument);
    // do something
}

2.另一種自己寫事件 例如BtnUp_Click
Button btn = (Button)sender;
        GridViewRow gvr = (GridViewRow)btn.NamingContainer;
        string str_emp_id = gvr.Cells[0].Text;

抓row index 用 gvr.Rowindex

使用Template的特定控制項:gvr.FindControl("Button1");

註 : AutoGenerateColumns="false" Bind後欄位不自動增加

註 : ItemStyle-HorizontalAlign="Center" 文字置中

註 : DataItemIndex等於Binding中的絕對index


由後台餵資料,資料欄位要包含DataField會自動

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_OnRowCommand" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="name" HeaderText="Name" />
        <asp:BoundField DataField="email" HeaderText="Email" />
        <asp:TemplateField ShowHeader="False">
            <ItemTemplate>
                <asp:Button ID="Button1" runat="server" CausesValidation="false" CommandName="SendMail"
                    Text="SendMail" CommandArgument='<%# Eval("id") %>' OnClick="BtnUp_Click" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

================================================
RowDataBound

            e.Row.Cells[0].Attributes["onclick"] = "if (!confirm('確 定 要 歸 還 設 備 嗎?')) { return false; };" + this.Page.ClientScript.GetPostBackEventReference((GridView)sender, "Del$" + e.Row.Cells[0].Text);


整個Row

            e.Row.Attributes["onclick"] = "if (!confirm('確 定 要 歸 還 設 備 嗎?')) { return false; };" + this.Page.ClientScript.GetPostBackEventReference((GridView)sender, "Del$" + e.Row.Cells[0].Text);

================================================

點選GridView後回到TOP MaintainScrollPositionOnPostback="false"

在ASPX的最上面那行,如果要保持在點選的位置時就改true

<%@ Page Title="" Language="C#" MasterPageFile="~/it_mg/MasterPage.master" AutoEventWireup="true" EnableEventValidation="false" MaintainScrollPositionOnPostback="false" CodeFile="Default.aspx.cs" Inherits="it_mg_pc_data_Default" %>
========================================================
注意事項 GridView生命週期

要注意,動態加入Control控制項在RowDataBound跟RowCreated的執行,有所不同
要去看一下GridView生命週期
========================================================

抓GridView的值
String strmsg = this.GridView1.Rows[0].Cells[0].Text;