GridView行的顯示和編輯狀態

顯示數據時不能編輯,可用Label標籤,編輯時變爲TextBox。關鍵是在TemplateField裏面加入二塊子模板<ItemTemplate>

和<EditItemTemplate>

<EditItemTemplate>就是GRIDVIEW處在編輯狀態下時該列的狀態。

 

前臺代碼

<asp:GridView ID="gridview1" runat="server" AutoGenerateColumns="False" DataKeyNames="BM" OnRowDataBound="gridview1_RowDataBound" OnRowEditing="gridview1_RowEditing" BackColor="White" BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px" CellPadding="4" OnRowUpdating="gridview1_RowUpdating" Width="100%" OnRowCancelingEdit="gridview1_RowCancelingEdit" OnRowDeleting="gridview1_RowDeleting">
            <Columns>              
                <asp:TemplateField HeaderText="緩衝罐名稱" ShowHeader="true">
                    <ItemTemplate>                       
                        <asp:Label ID="tDGM" runat="server" Text='<%#Eval("DGM")%>' Width="100%"></asp:Label>                      
                    </ItemTemplate>
                    <ControlStyle Width="50px" />
                </asp:TemplateField>
               
                <asp:TemplateField HeaderText="高度(m)" ShowHeader="true">
                    <ItemTemplate>
                        <asp:Label ID="tGD" runat="server" Text='<%#Eval("GD")%>' Width="100%"></asp:Label>                      
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="tGD" runat="server" Text='<%#Eval("GD")%>' Width="100%"></asp:TextBox> 
                    </EditItemTemplate>
                    <ControlStyle Width="30px" />
                </asp:TemplateField>
               
                <asp:TemplateField HeaderText="直徑(m)" ShowHeader="true">
                    <ItemTemplate>
                        <asp:Label ID="tZJ" runat="server" Text='<%#Eval("ZJ")%>' Width="100%"></asp:Label>                      
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="tZJ" runat="server" Text='<%#Eval("ZJ")%>' Width="100%"></asp:TextBox> 
                    </EditItemTemplate>                   
                    <ControlStyle Width="30px" />
                </asp:TemplateField>
               
                <asp:TemplateField HeaderText="液位上限(m)" ShowHeader="true">
                    <ItemTemplate>
                        <asp:Label ID="tYWSX" runat="server" Text='<%#Eval("YWSX")%>' Width="100%"></asp:Label>                      
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="tYWSX" runat="server" Text='<%#Eval("YWSX")%>' Width="100%"></asp:TextBox> 
                    </EditItemTemplate>                   
                    <ControlStyle Width="30px" />
                </asp:TemplateField>
               
                <asp:TemplateField HeaderText="液位下限(m)" ShowHeader="true">
                    <ItemTemplate>
                        <asp:Label ID="tYWXX" runat="server" Text='<%#Eval("YWXX")%>' Width="100%"></asp:Label>                      
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="tYWXX" runat="server" Text='<%#Eval("YWXX")%>' Width="100%"></asp:TextBox> 
                    </EditItemTemplate>                    
                    <ControlStyle Width="30px" />
                </asp:TemplateField>              

                <asp:TemplateField HeaderText="在用" ShowHeader="true">
                    <EditItemTemplate>
                        <asp:DropDownList ID="dzy" runat="server">
                        </asp:DropDownList>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="lzy" runat="server" Text='<%#(Eval("ZY"))%>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="操作" ShowHeader="true">
                        <EditItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
                                 Text="更新"></asp:LinkButton>
                            <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
                                Text="取消"></asp:LinkButton>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"
                                Text="編輯" OnClientClick="return confirm(確認要編輯嗎?);"></asp:LinkButton>
                       
                            <asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="False" CommandName="Delete"
                                Text="刪除" OnClientClick="return confirm(確認要刪除嗎?);"></asp:LinkButton>
                            <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Select"
                                Text="選擇"></asp:LinkButton>
                        </ItemTemplate>
                </asp:TemplateField>

            </Columns>
            <FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
            <RowStyle BackColor="White" ForeColor="#003399" />
            <SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
            <PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
            <HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />
        </asp:GridView>

 

後臺代碼

    protected void gridview1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        gridview1.EditIndex = e.NewEditIndex;
        //當前編輯行背景色高亮
        this.gridview1.EditRowStyle.BackColor = System.Drawing.Color.CadetBlue;  
        DataBind1(bm);
    }

 

效果圖

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章