顯示數據時不能編輯,可用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);
}
效果圖