<asp:GridView ID="gv_Data" runat="server" AutoGenerateColumns="False"

    CellPadding="3" GridLines="None" AllowSorting="true" PageSize="10"

    AllowPaging="True" BackColor="White" BorderColor="#4A3C8C"

    BorderStyle="None" BorderWidth="1px" DataKeyNames="SerialNo"

    style="margin-top: 0px" Width="965" >

    <EditRowStyle Font-Size="Small" />

    <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />

    <HeaderStyle CssClass="font2" BackColor="#4b6c9e" Font-Bold="True"

        ForeColor="#F7F7F7" />

    <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />

    <RowStyle CssClass="font2" BackColor="#E7E7FF" ForeColor="#4A3C8C" />

    <AlternatingRowStyle BackColor="#F7F7F7" />

    <Columns>

        <asp:CommandField DeleteText="刪除" ShowDeleteButton="True" >

        <HeaderStyle Width="35px" />

        </asp:CommandField>

        <asp:CommandField ShowEditButton="True" CancelText="取消" EditText="修改"

            UpdateText="確定" >

        <ItemStyle Font-Size="Small" Width="60px" />

        </asp:CommandField>

        <asp:TemplateField HeaderText="SerialNo" SortExpression="SerialNo" Visible="False">

            <ItemTemplate>

                <asp:Label ID="lab_SerialNo" runat="server" Text='<%# Bind("SerialNo") %>'></asp:Label>

            </ItemTemplate>

            <HeaderStyle Font-Size="Small" />

            <ItemStyle Font-Size="Small" HorizontalAlign="Center" Width="30px" />

        </asp:TemplateField>

        <asp:TemplateField HeaderText="ELE_ID" SortExpression="ELE_ID" ItemStyle-Wrap="true" ItemStyle-Width="80">

            <ItemTemplate>

                <asp:Label ID="lab_ELE_ID" runat="server" Text='<%# Bind("ELE_ID") %>' Width='80px'></asp:Label>

            </ItemTemplate>

            <EditItemTemplate>

                <asp:TextBox ID="txt_ELE_ID" runat="server" Text='<%# Bind("ELE_ID") %>'

                        Width="80px" MaxLength="10" ></asp:TextBox>

            </EditItemTemplate>

            <HeaderStyle Font-Size="Small" Width="80px"/>

            <ItemStyle Font-Size="Small" HorizontalAlign="Center" Width="80px"/>

        </asp:TemplateField>

        <asp:TemplateField HeaderText="StatusCd" SortExpression="StatusCd">

            <ItemTemplate>

                <asp:Label ID="lab_StatusCd" runat="server" Text='<%# Bind("sStatusCd") %>'></asp:Label>

            </ItemTemplate>

            <EditItemTemplate>

                <asp:DropDownList ID="ddl_StatusCd" runat="server">

                    <asp:ListItem Value="Y">正常(Y)</asp:ListItem>

                    <asp:ListItem Value="N">停用(N)</asp:ListItem>

                </asp:DropDownList>

                <asp:TextBox ID="txt_StatusCd" runat="server" Text='<%# Bind("StatusCd") %>' Width="30px" MaxLength="1"  style="display:none" ></asp:TextBox>

            </EditItemTemplate>

            <HeaderStyle Font-Size="Small" Width="80px" />

            <ItemStyle Font-Size="Small" HorizontalAlign="Center" Width="80px" />

        </asp:TemplateField>

        <asp:TemplateField HeaderText="METHOD" SortExpression="METHOD">

            <ItemTemplate>

                <asp:Label ID="lab_METHOD" runat="server" Text='<%# Bind("METHOD") %>'></asp:Label>

            </ItemTemplate>

            <EditItemTemplate>

                <asp:TextBox ID="txt_METHOD" runat="server" Text='<%# Bind("METHOD") %>' Height='50px' Width="100px" MaxLength="255"

                TextMode="MultiLine"></asp:TextBox>

            </EditItemTemplate>

            <HeaderStyle Font-Size="Small"/>

            <ItemStyle Font-Size="Small" HorizontalAlign="Center" Width="120px" />

        </asp:TemplateField>

    </Columns>

    <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />

</asp:GridView>

 

 

 

 

    '函式顯示資料

    Private Sub s_ShowGvData()

        Dim sL_SqlCommand, sL_SqlWhere, sP_Type, sP_InPut As String

        Dim dv As DataView

        sL_SqlCommand = ""

        sL_SqlCommand += " Select [SerialNo],[ELE_ID],[ELE_DESC],[StatusCd],[METHOD],[REMARK],[SQL_METHOD],[CRE_ID]"

        sL_SqlCommand += " ,[CRE_DATE]=Convert(char(10),[CRE_DATE],111)"

        dv = Conn.Query(BaseUtil.ReduceSQL(sL_SqlCommand)).DefaultView

        If dv Is Nothing Then

            lab_Msg.Text = "庫連結失敗!!"

            Exit Sub

        End If

        lab_gvCount.Text = dv.Count

        If dv.Count < 1 Then

            lab_Msg.Text = "查無資料!!"

        End If

        If Not ViewState("_Sort") Is Nothing Then

            dv.Sort = ViewState("_Sort")

        End If

        If Not ViewState("sG_gvPageSiez") Is Nothing Then

            gv_Data.PageSize = ViewState("sG_gvPageSiez")

        End If

        gv_Data.DataSource = dv

        gv_Data.DataBind()

    End Sub

 

    '函式產生_[到第幾頁]下拉選單

    Public Sub s_bindDDL()

        ddl_gvPage.Items.Clear()

        If gv_Data.PageCount > 1 Then

            For i As Integer = 0 To gv_Data.PageCount - 1

                ddl_gvPage.Items.Add(New ListItem((i + 1).ToString(), i.ToString()))

            Next

            ddl_gvPage.SelectedIndex = gv_Data.PageIndex

        End If

    End Sub

 

    'gv事件[Cance]

    Protected Sub gv_Data_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles gv_Data.RowCancelingEdit

        gv_Data.EditIndex = -1

        Call s_ShowGvData()

    End Sub

 

    'gv事件[Edit]

    Protected Sub gv_Data_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles gv_Data.RowEditing

        Dim i As Integer = e.NewEditIndex

        gv_Data.EditIndex = i

        Call s_ShowGvData()

        Dim ddl_gvType As DropDownList

        Dim txt_gvBox As TextBox

        txt_gvBox = gv_Data.Rows(i).FindControl("txt_StatusCd")

        ddl_gvType = gv_Data.Rows(i).FindControl("ddl_StatusCd")

        If Not ddl_gvType Is Nothing And Not txt_gvBox Is Nothing Then

            ddl_gvType.SelectedValue = txt_gvBox.Text

        End If

    End Sub

 

    'gv事件[換頁]

    Protected Sub gv_Data_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles gv_Data.PageIndexChanging

        gv_Data.PageIndex = e.NewPageIndex

        Call s_ShowGvData()

    End Sub

 

    'gv事件[排序]

    Protected Sub gv_Data_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles gv_Data.Sorting

        If e.SortExpression = ViewState("_Sort") Then

            If ViewState("_Type") = " ASC" Then

                ViewState("_Type") = " DESC"

            Else

                ViewState("_Type") = " ASC"

            End If

            ViewState("_Sort") = e.SortExpression & ViewState("_Type")

        Else

            ViewState("_Type") = " ASC"

            ViewState("_Sort") = e.SortExpression

        End If

        Call s_ShowGvData()

    End Sub

 

    'gv事件刪除]

    Protected Sub gv_Data_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles gv_Data.RowDeleting

        Dim sL_SerialNo As String

        sL_SerialNo = gv_Data.DataKeys(e.RowIndex).Value.ToString.Trim

        If Conn.ExecuteNonQuery(" Delete Renk Where SerialNo='" & sL_SerialNo.Trim & "'") Then

            lab_Msg.Text = "刪除成功

        Else

            lab_Msg.Text = "刪除失敗"

        End If

        Call s_ShowGvData()

    End Sub

 

    'gvØ »D Ã[Update]

    Protected Sub gv_Data_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gv_Data.RowUpdating

        Dim labL_SerialNo As Label = gv_Data.Rows(e.RowIndex).FindControl("lab_SerialNo")

        Dim txtL_ELE_ID As TextBox = gv_Data.Rows(e.RowIndex).FindControl("txt_ELE_ID")

        Dim sL_SqlCommand, sL_Msg As String

        lab_Msg.Text = ""

        sL_SqlCommand = ""

        sL_SqlCommand += " Update [Renl] Set ELE_ID='" & txtL_ELE_ID.Text.Trim & "'"

        sL_SqlCommand += " Where SerialNo='" & labL_SerialNo.Text.Trim & "'"

        If Conn.ExecuteNonQuery(sL_SqlCommand) Then

            lab_Msg.Text = "修改成功

        Else

            lab_Msg.Text = "修改失敗"

        End If

        gv_Data.EditIndex = -1

        Call s_ShowGvData()

    End Sub

 

    'gv事件[RowDataBound]

    Protected Sub gv_Data_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gv_Data.RowDataBound

        If e.Row.RowIndex <> -1 And gv_Data.EditIndex = -1 Then

            Dim lbtn_gv As LinkButton = CType(e.Row.Cells(0).Controls(0), LinkButton)

            If Not lbtn_gv Is Nothing Then

                lbtn_gv.OnClientClick = "if (confirm('您確定要刪除嗎?')==false) {return false;}"

            End If

        End If

    End Sub

 

    '下拉選單_[到第幾頁]

    Protected Sub ddl_gvPage_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl_gvPage.SelectedIndexChanged

        lab_Msg.Text = ""

        gv_Data.PageIndex = ddl_gvPage.SelectedIndex

        Call s_ShowGvData()

    End Sub

 

    '下拉選單_[顯示幾筆]

    Protected Sub ddl_gvSiez_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl_gvSiez.SelectedIndexChanged

        lab_Msg.Text = ""

        ViewState("sG_gvPageSiez") = ddl_gvSiez.SelectedValue

        Call s_ShowGvData()

        Call s_bindDDL()

    End Sub