problemer med at går i editmode i en datagrid
hej, jeg har problemmer med at gå i edit mode i datagrid. Min kode ser således ud:private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
if(Session["Room"] != null)
{
this.currentRoom = (Room)Session["Room"];
}
if(Session["Room"] != null)
{
GetData();
}
else
{
Response.Redirect("~/Default.aspx");
}
}
if(Session["Room"] != null)
{
this.currentRoom = (Room)Session["Room"];
}
}
private void GetData()
{
DataBindDataGrid();
}
private void DataBindDataGrid()
{
DataTable dt = new DataTable();
dt = DataManagerClass.GetRoomEquipment(this.currentRoom.RoomID);
if(dt!=null)
{
dgRoomEquipment.DataSource = dt;
dgRoomEquipment.DataKeyField = "RoomEquipmentID";
dgRoomEquipment.DataBind();
}
else
{
dgRoomEquipment.Visible = false;
}
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
this.lnkbtnNewRoomEquipment.Click += new EventHandler(lnkbtnNewRoomEquipment_Click);
this.btnCancelNewRoomEquipment.Click += new EventHandler(btnCancelNewRoomEquipment_Click);
this.btnSaveNewRoomEquipment.Click += new EventHandler(btnSaveNewRoomEquipment_Click);
this.dgRoomEquipment.ItemCommand += new DataGridCommandEventHandler(dgRoomEquipment_ItemCommand);
this.dgRoomEquipment.ItemDataBound += new DataGridItemEventHandler(dgRoomEquipment_ItemDataBound);
}
#endregion
private void dgRoomEquipment_ItemCommand(object source, DataGridCommandEventArgs e)
{
int id = Int32.Parse(this.dgRoomEquipment.DataKeys[e.Item.ItemIndex].ToString());
if(e.CommandName.Equals("Edit"))
{
dgRoomEquipment.EditItemIndex = id;
}
DataBindDataGrid();
}
private void dgRoomEquipment_ItemDataBound(object sender, DataGridItemEventArgs e)
{
DataRowView drv = (DataRowView) e.Item.DataItem;
if(e.Item.ItemType == ListItemType.EditItem)
{
DataBindEditEquipmentDropDown();
ddlEditEquipment.SelectedValue = drv["EquipmentID"].ToString();
}
}
det er en knap der har comandname Edit og når jeg klikker på den, så går den godt nok i koden og sætter editItemIndex til det rigtige ID men på selve siden kan det ikke ses. Er der noget jeg har glemt??
aspx koden:
<asp:DataGrid ID="dgRoomEquipment" Runat="server" CellPadding="2" CellSpacing="0" AutoGenerateColumns="False"
EnableViewState="True" HeaderStyle-CssClass="datagrid_header" AlternatingItemStyle-CssClass="datagrid_item_alternating"
ItemStyle-CssClass="datagrid_item" Width="100%">
<Columns>
<asp:TemplateColumn HeaderText="RoomID" Visible="False">
<ItemStyle Width="40" />
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "RoomID") %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Udstyr" HeaderStyle-Font-Bold="True">
<ItemStyle Width="120" />
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Equipment") %>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlEditEquipment" Runat="server" CssClass="textbox" Width="200" />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Nuv. antal" HeaderStyle-Font-Bold="True">
<ItemStyle Width="60" HorizontalAlign="Center" />
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "CurrentNumber") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtEditCurrentNumber" Runat="server" CssClass="textbox" Width="200" Text='<%# DataBinder.Eval(Container.DataItem, "CurrentNumber") %>'/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Indkøb" HeaderStyle-Font-Bold="True">
<ItemStyle Width="60" HorizontalAlign="Center" />
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "FutureNumber") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtEditFutureNumber" Runat="server" CssClass="textbox" Width="200" Text='<%# DataBinder.Eval(Container.DataItem, "FutureNumber") %>' />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Noter" HeaderStyle-Font-Bold="True">
<ItemStyle Width="400" />
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Note") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtEditNote" Runat="server" CssClass="textbox" Width="100%" Text='<%# DataBinder.Eval(Container.DataItem, "Note") %>' />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemStyle Width="30" HorizontalAlign="Center" />
<ItemTemplate>
<asp:ImageButton ID="imgbtnEdit" Runat="server" CommandName="Edit" ImageUrl="../Graphics/Icons/IconEdit.gif" />
</ItemTemplate>
<EditItemTemplate>
<asp:ImageButton ID="imgbtnSave" Runat="server" CommandName="Save" ImageUrl="../Graphics/Icons/IconDone.gif" />
<asp:ImageButton ID="imgbtnCancel" Runat="server" CommandName="Cancel" ImageUrl="../Graphics/Icons/IconCancel.gif" />
<asp:ImageButton ID="imgbtnDelete" Runat="server" CommandName="Delete" ImageUrl="../Graphics/Icons/IconDelete.gif" />
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
