Cancel, Edit, Delete, Update i datagrid
Jeg håber, her er nogle, som kan hjælpe.Jeg har strikket dette sammen, men ved ikke, hvad jeg skal skrive i de subs, der giver knapperne den ønskede funktion.
Her er sourcekoden:
<%@ Page Language="VB" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.IO" %>
<script runat="server">
Sub Page_Load(sender as object, e as eventargs)
If not Page.IsPostback Then
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
End If
End Sub
Protected Function LoadMyCalendarData() As DataSet
Dim sourceXML as String = Server.MapPath("MyCalendar.xml")
If ( Not File.Exists(sourceXML) ) Then
Return Nothing
End if
Dim cachedDataSet as DataSet = Session("MyCalendarData")
if ( Not cachedDataSet Is Nothing ) Then
Return cachedDataSet
End if
Dim dataSet As DataSet = New DataSet()
Try
dataSet.ReadXml(sourceXML)
Session("MyCalendarData") = dataSet
Catch e As Exception
ErrorMessage.Text = e.Message
dataSet = Nothing
End Try
Return dataSet
End Function
Sub DEDR_Edit(sender as object, e as DataGridCommandEventArgs)
EventData.EditItemIndex = CInt(E.Item.ItemIndex)
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
End Sub
Sub DEDR_Update(sender as object, e as DataGridCommandEventArgs)
Dim dataSet as DataSet = LoadMyCalendarData
Dim row as Integer = CInt(E.Item.ItemIndex)
Dim EditText as textbox
EditText = E.Item.FindControl("txtShortDesc")
dataSet.Tables(0).Rows(row).Item("ShortDesc") = EditText.Text
EditText = E.Item.FindControl("txtDetailDesc")
dataSet.Tables(0).Rows(row).Item("DetailDesc") = EditText.Text
EditText = E.Item.FindControl("txtEventDate")
dataSet.Tables(0).Rows(row).Item("EventDate") = EditText.Text
EditText = E.Item.FindControl("txtStartTime")
dataSet.Tables(0).Rows(row).Item("StartTime") = EditText.Text
EditText = E.Item.FindControl("txtEndTime")
dataSet.Tables(0).Rows(row).Item("EndTime") = EditText.Text
dataSet.WriteXML(Server.Mappath("MyCalendar.xml"))
Session("MyCalendarData") = Nothing
EventData.EditItemIndex = -1
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
End Sub
Sub DEDR_Cancel(sender as object, e as DataGridCommandEventArgs)
EventData.EditItemIndex = -1
Session("MyCalendarData") = Nothing
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
End Sub
Sub DEDR_Delete(sender as object, e as DataGridCommandEventArgs)
Dim dataSet as DataSet = LoadMyCalendarData
Dim row as Integer = CInt(E.Item.ItemIndex)
dataSet.Tables(0).Rows(row).Delete
dataSet.WriteXML(Server.Mappath("MyCalendar.xml"))
Session("MyCalendarData") = Nothing
EventData.EditItemIndex = -1
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
End Sub
Sub DEDR_Add(sender as object, e as EventArgs)
Dim dataSet as DataSet = LoadMyCalendarData
Dim newRow as DataRow
newRow = dataSet.Tables(0).NewRow()
newRow.Item("EventDate") = ""
newRow.Item("ShortDesc") = ""
newRow.Item("DetailDesc") = ""
newRow.Item("StartTime") = ""
newRow.Item("EndTime") = ""
dataSet.Tables(0).Rows.Add(newRow)
dataSet.WriteXML(Server.Mappath("MyCalendar.xml"))
Session("MyCalendarData") = Nothing
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
EventData.EditItemIndex = EventData.Items.Count - 1
EventData.DataSource = LoadMyCalendarData
EventData.DataBind()
End Sub
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:Label id="Errormessage" runat="Server"></asp:Label>
<br />
<asp:linkbutton id="LinkButton1" onclick="DEDR_Add" runat="Server" text="Add new event"></asp:linkbutton>
<br />
<asp:datagrid id="Eventdata" runat="Server" OnCancelCommand="DEDR_Cancel" OnDeleteCommand="DEDR_Delete" OnUpdateCommand="DEDR_Update" OnEditcommand="DEDR_Edit" width="100%" autogeneratecolumns="false">
<Headerstyle forecolor="White" backcolor="DodgerBlue" font-bold="true" />
<ItemStyle backcolor="White" />
<AlternatingItemStyle backcolor="Gainsboro" />
<Columns>
<asp:TemplateColumn HeaderText="Varenummer">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "EventDate") %>
</ItemTemplate>
<EditItemTemplate>
<asp:Textbox id="txtEventDate" size="25" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "EventDate") %>' />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Varenavn">
<ItemTemplate>
<%# Container.DataItem("ShortDesc") %>
</ItemTemplate>
<EditItemTemplate>
<asp:Textbox id="txtShortDesc" size="25" runat="server" Text='<%# Container.DataItem("ShortDesc") %>' />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Varetype">
<ItemTemplate>
<%# Container.DataItem("DetailDesc") %>
</ItemTemplate>
<EditItemTemplate>
<asp:Textbox id="txtDetailDesc" size="7" runat="server" Text='<%# Container.DataItem("DetailDesc") %>' />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Beskrivelse">
<ItemTemplate>
<%# Container.DataItem("StartTime") %>
</ItemTemplate>
<EditItemTemplate>
<asp:Textbox id="txtStartTime" size="50" runat="server" Text='<%# Container.DataItem("StartTime") %>' />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Pris">
<ItemTemplate>
<%# Container.DataItem("EndTime") %>
</ItemTemplate>
<EditItemTemplate>
<asp:Textbox id="txtEndTime" size="7" runat="server" Text='<%# Container.DataItem("EndTime") %>' />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:linkbutton Commandname="Edit" Text="Edit" runat="Server" />
<asp:linkbutton Commandname="Delete" Text="Delete" runat="Server" />
</ItemTemplate>
<EditItemTemplate>
<asp:linkbutton Commandname="Cancel" Text="Cancel" runat="Server" />
<asp:linkbutton Commandname="Update" Text="Update" runat="Server" />
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
</form>
</body>
</html>
