Forms Data Controls :: How To Delete A Dictionary Key / Value Pair Through A Repeater Item_command Method
Mar 7, 2010I have a repeater that is bound to a dictionary and displayed as follows:
[Code]....
I have a repeater that is bound to a dictionary and displayed as follows:
[Code]....
I am using VS 2008 SP1. My also have included CSS Friendly adapter [URL] in my project ( I mentioned this because my GridView Empty data template is not showing when using GridView's CCS Friendly adapter). I have a GridView and a DetailsView. When a record in GridView is selected its details information is shown in the Details View. Type of Data source I am using is ObjectDataSource. My Insert and Update methods works perfectly. It is only the Delete method that is passing null values to the underlying object delete method. My source codes for both the UI, BLL, DAL is shown below
[Code]....
My Business Object code is below :
[Code]....
My Data Access Layer Code is:
[Code]....
I found a example of this but it wont work for me. So I will do a clean question by asking how do I bind a dictionary to a repeater?
I work with code behind so its for the OnItemDataBound. My Dictionary look like Dictionary<string, string>();
public class Package
{
public Package()
{
name = "";
type = new List<Dictionary<string, string>>();
}
public string name { get; set; }
public List<Dictionary<string, string>> type { get; set; }
}
[code]...
tell me what is the best way to add Delete and Edite to a repeater control using C# code.
View 2 RepliesWhen you push Gridview delete button, I want to alarm "do you want to delete register" . I searched in the internet and I wrote the code like that.
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkbtndelete"
CommandName="Delete" runat="server">
[code]...
I have a datarepeater control on my form. I have a method for updating comments, but I would like it to be exectued when a user clicks a checkbox (inside the datarepeater). The checked value is being "bind" to the checkbox control. Can I use the built in Update Method tied to the objectdatasource?
View 1 RepliesI have a static class that holds a dictionary of objects. I have multiple threads that access this dictionary and create objects on it that are specific to that thread. How and when can I remove entries from the dictionary when a thread is "done"?
Basically this is a static class for an ASP.NET application that all requests can have "isolated objects" (that are related to the current thread) created in the dictionary. But, I don't really want to be tied to ASP.NET.
Need to bind repeater using PIVOT method via stored procedure.
View 1 Repliescan anyone explain what this method does exactly. Here what I can tell.ine 1 a dictionary object is createdline 2. it iterate through the Datarowline 3 . it adds first column name and value of the first row to other dictionary object fsline 4 & 5 here where I got lost, do not know what the code is ment to do , please explain also, can you go over the first two iteration word by word so i can follow up with you
protected Dictionary<string, object> fields(DataRow dr)
{
1 Dictionary<string, object> fs = new Dictionary<string, object>();
2 for (int i = 0; i < dr.ItemArray.Length; i++)
[code]...
How to populate or bind TreeView from one table use SQLSERVER database in ASP.NETÂ & C# table include
ID,Name,ParentID
I am iterating through a dictionay object. And although I added a couple of keys @Microdoft and @Microsoft_Child which I thought were different but when i use the .ContainsKey method it views them as being the same. Should I use ContainsValue method?
View 3 Replieslets say I want to make a label of repeater1 visible in repater2's ItemCommand() method..
e.Item.FindControl("rpt1Label").Visible=True;
is not working..how else do you do it ?
[EDIT]
changed that to repeater1.FindControl("rpt1Label").Visible=True;
This is throwing object reference null exception
How do I reference the delete button to add the delete confirmation box when I have both the Edit and Delete buttons as the last two columns in the Gridview control. The following code works fine without any issues when I have the delete button only:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType != DataControlRowType.DataRow) return;
int lastCellIndex = e.Row.Cells.Count - 1;
Button db = (Button)e.Row.Cells[lastCellIndex].Controls[0];
db.OnClientClick = "if (!window.confirm('Are you sure you want to delete this record?')) return false;";
}
But, when I have both the Edit and the Delete buttons, I get the following error when I click the edit button while the delete button works fine.
Specified argument was out of the range of valid values. Parameter name: index
How do I reference the delete button so the edit button is not affected in this case?
Using "Enable Delete" from Gridview control, I can delete (besides, update, sort, paging, etc) data from the database (this is done automatically). However, how can I delete the actual image that resides in my image folder (i.e. from "pix" folder )? What is the best way to delete image? If using code behind, how? Please write a full code for me. Here is my source code.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="photoID"
I have a grid contol that allows delete what I would like to have is someway to say Are you sure you want to delete?I found this code online, and tried it but it did not work, Do I need something more some behind code maybe?Here is what I found online:Adding 'Delete Protection' to controls If you use a control set up to allow Delete, the Delete button gives a straight delete without any warning, which can be dangerous.To give a warning dialog box, add an OnClientClick event to the Delete button, as follows.
<asp:LinkButton
ID="DeleteButton"
runat="server" CausesValidation="False"
CommandName="Delete"
OnClientClick="return confirm('Are you sure you want to delete this record?');"
Text="Delete">
</asp:LinkButton>
Here is my code: You can see where I added the code from above.
<ItemTemplate>
ID:<asp:label id="IDLabel" runat="server" Text='<%# Eval("ID") %>' /><br />
Name:<asp:label id="NameLabel" runat="server" Text='<%# Bind("Name") %>' /><br />
Destination:<asp:label id="DestinationLabel" runat="server" Text='<%# Bind("Destination") %>' /><br />
OutDate:<asp:label id="OutDateLabel" runat="server" Text='<%# Bind("OutDate") %>' /><br />
ReturnDate:<asp:label id="ReturnDateLabel" runat="server" Text='<%# Bind("ReturnDate") %>' /><br />
LeaveTime:<asp:label id="LeaveTimeLabel" runat="server" Text='<%# Bind("LeaveTime") %>' /><br />
ReturnTime:<asp:label id="ReturnTimeLabel" runat="server" Text='<%# Bind("ReturnTime") %>' /><br />
ContactNumber:<asp:label id="ContactNumberLabel" runat="server" Text='<%# Bind("ContactNumber") %>' />
<asp:linkbutton id="EditButton" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit" />
<asp:linkbutton id="DeleteButton" runat="server" CausesValidation="False" CommandName="Delete" OnClientClick="return confirm('Are you sure you want to delete this record?');" Text="Delete" />
<asp:linkbutton id="NewButton" runat="server" CausesValidation="False" CommandName="New" Text="New" />
</ItemTemplate>
I'm trying to execute an aspx page but get this error.
Server Error in '/' Application.
The given key was not present in the dictionary. Description: An unhandled exception occurred during the execution of the current web request. review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
[Code]....
I am using Sharepoint Designer and trying to insert a Delete button into a gridview. I added this to the top of my ASPX:
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls"
Assembly="Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c" %>
and I added this as a Gridview column:
<SharePoint:DeleteItemButton
runat="server"
ID="CustomFormDeleteItemButton"
ControlMode="Edit"
/>
and this is the error I get:
An error occurred during the processing of . System.Web.UI.WebControls.DataControlFieldCollection must have items of type 'System.Web.UI.WebControls.DataControlField'. 'SharePoint:DeleteItemButton' is of type 'Microsoft.SharePoint.WebControls.DeleteItemButton'.
protected void Page_Load(object sender, EventArgs e)
[Code]....
I created a ListView and attempted to delete a record using the delete button and native procedures. It failed and threw an error.Pass in a valid dictionary for delete or change your mode to OverwriteChangesIn researching this issue, it appeared there is a problem with the list view when deleteing and
ConflictDetection is set to
[Code]....
[Code]....
[Code]....
[Code]....
[Code]....
[Code]....
[Code]....
[Code]....
[Code]....
I'm new to c# and .net but I think what I'm trying to do is fairly simple, however I think I'm getting stuck on variable types.So I have say 6 literal webcontrol myReq1, myReq2, myReq3.... and rather than implicitly setting them line by line I just want to run through a loop and set them dynamically. So to do this I've set up a dictionary that will contain the name of each literal, I can then run through those to add the data. This all works when I set up the dictionary by hand ie
Dictionary<int, Literal> myReqDict = new Dictionary<int, Literal>();
myReqDict.Add(0, myReq1);
myReqDict.Add(1, myReq2);[code]...
Obviously the Text inserted would be dynamic too, but you get the idea, so all that works just fine, but I'd like to do the Add part of the dictionary dynamically as well and that's where I'm running into trouble, I want to do something like:
Dictionary<int, Literal> myReqDict = new Dictionary<int, Literal>();
for(int cnt = 0; cnt<7 ;cnt+= 1){
myReqDict.Add(cnt, "myReq"+(cnt+1));
}
However this isn't valid, I can see why the "myReq"+(cnt+1) would not be valid as it's a String rather than a literal, but how can I convert the String to the Literal? What I am confused about is why the cnt on Add also isn't accepted, it is typed as an Int so to my mind it should be accepted
got an example of a repeater inside a repeater (dataBound) code behind?
View 3 RepliesI have a user control that displays a shopping cart in an ecommerce application.
The main cart display is a repeater that renders as a html table. In one of those table columns, there is another repeater to display people associated with the products int he cart (it's a repeater in case there is a line item >1 with multiple people).
I've added an ImageButton that I want to use to change the person associated with the item. At first, when I'd click on it I was getting this error:
Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
So as an experiment I disabled EventValidation on the page (not the control it's self) and now I do not get an error, but I also do not ever hit the breakpoint I set in the innermost repeater's ItemCommand event.
So I wonder how I might do this without disabling EventValidation, because this control will show up on multiple pages and we don't want to edit them all. Also, I'll need to know not only the repeater containing the control's row that the event came from but also the row index of the repeater containg this one. Is this possible?
I have repeater in which I have 2 hyperlink in the footer of the repeater and I want that the hyperlink can navigate from the page_load
View 2 RepliesHow and where can I get the returnvalue from my "DeleteGuestById" method to show the right error message to my user?
I have this:
Protected Sub gvGuestlist_OnRowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) Handles gvGuestlist.RowCommand
If e.CommandName = "DeleteGuest" Then
Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim data As DataKey = gvGuestlist.DataKeys(index)
Dim GuestId As Integer = data.Values("id")
odsGuestlist.DeleteParameters.Clear()
odsGuestlist.DeleteParameters.Add("id", GuestId)
odsGuestlist.Delete()
End If
End Sub
In my BLL:
<System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, False)> Public Function DeleteGuestById(ByVal ID As Integer) As Integer
Dim returnval As Integer
GuestlistAdapter.DeleteGuestById(ID, returnval)
Return returnval
End Function
I think I have to be in the ObjectDatasources' "OnDeleted" method but I have no what code to place there.