.net - Add Custom Object To DropDownList Items?
Jul 11, 2010I'm using DropDownList within my WebApplication. I need to keep additional piece of information with each Item on list. How can I achieve this?
View 3 RepliesI'm using DropDownList within my WebApplication. I need to keep additional piece of information with each Item on list. How can I achieve this?
View 3 RepliesI am trying to use
[Code]....
with values I get from a database but I am getting Object reference not set to an instance of an object.
protected void DDLzone1_SelectedIndexChanged(object sender, EventArgs e)
{
BindDistrict();
}
[Code]......
here when i click on ALL item from ddlzone1 it just "ALL" item in ddldistrict
i want when i select "ALL" item from ddlzone1 in ddldistrict14 show all data from database
I've scenario where I want to insert data into database without post back. there are around 12 to 13 fields which i need to insert. I'm passing DTO from the client side which is actually Json object. Now the problem which i'm facing is how to convert that Json object which i got in webservice to the "class" (in my case class name is User) object.
[Code]....
In the above case AddNewUser method takes the object of User class. But i'm getting casting error. So how do I convert Json object to the "User" class object?
I have the following code:
[WebMethod]
[SoapHeader("_webServiceAuth")]
public User GetUser(string username){
try
{
this._validationMethods.Validate(_webServiceAuth);
User user = new User(username);
[code]...
I am trying to implement the code URL...I have a database table with Integer type.Here is the running code line: Code in GridView:
<asp:TemplateField HeaderText="RegionNavn">
<ItemTemplate>
<%# Eval("RegionNavn")%>
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="lblRegionNavn" runat="server" Text='<%# Eval("RegionNavn")%>' Visible = "false"></asp:Label>
[code]...
On Edit Click, the DropDownList in the GridView brings the previously selected value.On Update Click, the error is: "System.FormatException: Input string was not in a correct format."
dCmd.Parameters.Add("@KystverketRegionID", SqlDbType.Int).Value = int.Parse(ddKystverketRegionID.SelectedValue);
When I use the following code:
ddlRegionNavn.DataTextField = "RegionNavn";
ddlRegionNavn.DataValueField = "RegionID"; // from RegionNavn to RegionID
On Edit Click, the DropDownList values in the GridView is not firing and the following error shows.Object reference not set to an instance of an object. How to implement the code when having a value of type Int ?
I have this part in the Gridview.
<asp:TemplateField HeaderText="Student">
<ItemTemplate>
<asp:DropDownList ID="ddl" OnSelectedIndexChanged="ddl_IndexChanged" runat="server">
</asp:DropDownList>
[Code]....
After the change, when it is to bind data, I get this Exception message. Why?Object reference not set to an instance of an object.
In manager.aspx page I have gridview that bind product information from database in this gridview I define linkbutton EDIT that when users click on it they go to Edit.aspx page and in this page users can see their product information and Edit them
In Edit.aspx page I use some textbox and dropdownlist and bind them from database
int data1 = Convert.ToInt32(Request.QueryString["Id"].ToString());
SqlCommand _cmd = new SqlCommand("viewProduct", _cn);
_cmd.CommandType = CommandType.StoredProcedure;
_cmd.Parameters.AddWithValue("@id", data1);
_cn.Open();
SqlDataReader _dr = _cmd.ExecuteReader();
[Code] ....
When I click on EDIt linkbutton from gridview it go to Edit.aspx page and bind all data from database and ofcourse show data in Dropdownlist untill now every thing is ok
but when I change some Item in this page i.e Name of product when I changed and clicked on button to update table in database it update data in database but below error happen too
Server Error in '/behtop website' Application.
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
Line 79:
Line 80:
Line 81: DDL1.Items.FindByText(_dr["classification"].ToString()).Selected = true; Line 82: DDL2.Items.FindByText(_dr["subset"].ToString()).Selected = true;
Line 83:
And when I back to manager.aspx and again click on Edit linkbutton to Edit that product it didn't load Edit.asp page and above error happen again...
This error happen just when I want edit product information in other time if I don't edit any thing edit.aspx page load successfully...
I have a dropdownlist attached to a cell when edit is selected. I am using the following code to populate the drop down list with the value that is on the row.
dlBU.Items.FindByValue((e.Row.FindControl("lblBU") as Label).Text).Selected = true;
This works famously when I have a value in the cell. It fails when the cell has not yet been populated. Is there an if then clause that if the value of e.Row.findcontrol("lblBU") is null no default value?
I use this code for binding my dropdownlist from database
DDL1.Items.FindByValue(_dr["classification"].ToString()).Selected = true;
But this error occur
Server Error in '/behtop website' Application.
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.Source Error:
Line 43: CKEditorControl1.Text = _dr["Description"].ToString();
Line 44: //DDL1.Items.FindByValue(_dr["classification"].ToString()).Selected = true;
Line 45: DDL2.Items.FindByValue(_dr["subset"].ToString()).Selected = true; Line 46:
What I'm trying to do is rather basic, but I might have my facts mixed up. I have a details page that has a custom class as it's Model. The custom class uses 2 custom objects with yet another custom object a property of one of the 2. The details page outputs a fair amount of information, but allows the user to post a comment. When the user clicks the post button, the page gets posted to a Details action that looks something like this:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Details(VideoDetailModel vidAndComment) { ....}
[Code]....
The only fields on the form that is posted are CommentText and VideoId. Here is what the VideoDetailModel looks like.
public class VideoDetailModel
{
public VideoDetailModel()
{
[Code]....
I suppose if I added more form fields for the properties I need, they would get posted, but I only need 1 form entry field for the CommentText. If I could get the same Model objects value that were sent to the page to post with the page, it looks like the solution is rather simple. I think using the RenderPartial in the middle of a form is problematic somehow to how the form gets written in html. I can't really put my finger on why things went bonkers, but if I do my RenderPartials before my form and then begin my form with the text entry field and the hidden VideoId, the default ModelBinder works just fine. I was beginning the form, writing the hidden VideoId, rendering several partial views, create my CommentText field, and then closed the form out. The CommentText field would get bound just fine. The hidden VideoId would not. Maybe I missed a rule somewhere about using RenderPartial.
For completeness, the partial view I was rendering took a Comment object and just wrote out it's CommentText data. Several of these objects would exist for a single Video object. All of this data was in a custom type and passed into the View (the main view) as it's Model. This partial view did not have a form and did not have any data entry fields.
I have Create a Custom Principal and a Custom Identiy for my Web Application and upon forms authentication
1 Create a profile of type object
2 Assign it to the Principal profile
3 assign the principal to the Http.Current.User (this now has the complete profile information )
As i understand upon redirection the principal is recreated and i loose the information i had stored in the profile.
I there a way to persist the profile information ?
I though can achieve persisting some information using FormsAuthenticationTicket in userData but that wouldent solve my purpose ..
I have created my custom MembershipProvider. I have used an instance of the class DBConnect within this provider to handle database functions. Please look at the code below:
public class SGIMembershipProvider : MembershipProvider
{
#region "[ Property Variables ]"
private int newPasswordLength = 8;
private string connectionString;
private string applicationName;
private bool enablePasswordReset;
private bool enablePasswordRetrieval;
private bool requiresQuestionAndAnswer;
private bool requiresUniqueEmail;
private int maxInvalidPasswordAttempts;
private int passwordAttemptWindow;
private MembershipPasswordFormat passwordFormat;
private int minRequiredNonAlphanumericCharacters;
private int minRequiredPasswordLength;
private string passwordStrengthRegularExpression;
private MachineKeySection machineKey;
**private DBConnect dbConn;**
#endregion
.......
public override bool ChangePassword(string username, string oldPassword, string newPassword)
{
if (!ValidateUser(username, oldPassword))
return false;
ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, newPassword, true);
OnValidatingPassword(args);
if (args.Cancel)
{
if (args.FailureInformation != null)
{
throw args.FailureInformation;
}
else
{
throw new Exception("Change password canceled due to new password validation failure.");
}
}
SqlParameter[] p = new SqlParameter[3];
p[0] = new SqlParameter("@applicationName", applicationName);
p[1] = new SqlParameter("@username", username);
p[2] = new SqlParameter("@password", EncodePassword(newPassword));
bool retval = **dbConn.ExecuteSP("User_ChangePassword", p);**
return retval;
} //ChangePassword
public override void Initialize(string name, NameValueCollection config)
{
if (config == null)
{
throw new ArgumentNullException("config");
}
......
ConnectionStringSettings ConnectionStringSettings = ConfigurationManager.ConnectionStrings[config["connectionStringName"]];
if ((ConnectionStringSettings == null) || (ConnectionStringSettings.ConnectionString.Trim() == String.Empty))
{
throw new ProviderException("Connection string cannot be blank.");
}
connectionString = ConnectionStringSettings.ConnectionString;
**dbConn = new DBConnect(connectionString);
dbConn.ConnectToDB();**
......
} //Initialize
......
} // SGIMembershipProvider
I have instantiated dbConn object within Initialize() event. My problem is that how could i dispose off this object when object of SGIMembershipProvider is disposed off. I know the GC will do this all for me, but I need to explicitly dispose off that object. Even I tried to override Finalize() but there is no such overridable method. I have also tried to create destructor for SGIMembershipProvider.
Is there an easy way to populate my C# Object with the JSON object passed via AJAX?
//This is the JSON Object passed to C# WEBMETHOD from the page using JSON.stringify
{"user":{"name":"asdf","teamname":"b","email":"c","players":["1","2"]}}
//C# WebMetod That receives the JSON Object
[WebMethod]
public static void SaveTeam(Object user)
{
}
//C# Class that represents the object structure of JSON Object passed in to the WebMethod
public class User
{
public string name { get; set; }
public string teamname { get; set; }
public string email { get; set; }
public Array players { get; set; }
}
I seriously want to learn how to create a custom server control, for that I made a requirement for myself, but lost on how to accomplish it.
Requirement -I want to create a cascading dropdownlist control - which should have following properties -1) ConnectionString - used to get data for the 1st dropdown from database, and also it is used by 2nd DropDown to get data.2) 1stSelectCommand - Used by the 1st DropDown to get data from the database.3) 2ndWhereCommand - used by the 2nd DropDown - uses the selected value from the 1st DropDown in the where clause to get data.
Methods - 1) DropDown1_SelectedIndexChanged()2) DropDown2_SelectedIndexChanged(3) CustomCascading_Changed() - this happens when any of the DropDowns index changed.
PS - This is a random requirement, of course it got nothing to do with any project or real time.I want to learn, so i incorporated basic concepts like Data Access, Custom Methods, Properties etc.PPS - I know how to create basic custom server control, so plz dont forward me links to how to create basic custom server controls. But in case with extrordinary links.
I have a DataView object with productID and productName,i get all items from Products Table and store them in Cache.I want to get items that user bought in order he bought them without using another query or joining tables. ie.
Products DataView
1. Foo
2. Foo2
3. Foo3
Filtering to ProductsBoughtByUser using RowFilter (productID in (1,3))
UserProducts DataView
1.Foo
3.Foo3
Now user first bought Foo3, how do i reorder items based on correct ( chronological ) Array. ie 3 1
When and how do I use the Httpcontext.items dictionary object?
View 2 RepliesFor my site, I have a list of users and a list of events. I will be assigning users to each event. I have a table named EventUsers to hold this data:
EventUsers
EventID | UserID
1 | 123
1 | 456
2 | 789
On my page, I want to be able to add and remove users for a certain event. I could have a dropdown populated with users and an "Add" button next to it, then when I want to add a user, I pick one and click "Add". There would be a grid below it displaying all the users for the event, with "Delete" buttons for each one. The downside to this is that a database call is made for every Add and Delete.
Another option is to have two listboxes on the page - one on the left containing all users in the database, and another on the right which will contain users for the given event, and I can just add or remove from the list on the right. Then when I'm done, I click save, and it makes one database call. The only issue is that if I'm removing and adding, I'll have to delete every record in my EventUsers table for that event, and then add the changes. I've run into this before, and I've always gone with the dropdown method. What's the preferred method here?
how i handle this problem..Its in hidden filed.
Server Error in '/DentalClaimPrjt' Application.
Cannot have multiple items selected in a DropDownList.
Description:An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: Cannot have multiple items selected in a DropDownList.
Source Error: [Code]....
Line 85: function openPopup2(did)
Line 86: {
Line 87: var hdnClm1 = document.getElementById('<%=hdnCliamid.ClientID%>').value;
Line 88: window.location="Form.aspx?DeleteRSPid=" + did + "&Editid="+ hdnClm1;
Line 89: }
Source File: d:DentalClaimPrjtForm.aspx Line: 87 Stack Trace: [Code]....
[HttpException (0x80004005): Cannot have multiple items selected in a DropDownList.]
System.Web.UI.WebControls.DropDownList.VerifyMultiSelect() +106
System.Web.UI.WebControls.ListControl.RenderContents(HtmlTextWriter writer) +124
I have a drop down list as follows:
[Code]....
[Code]....
I'm designing a web page with two dropdownlists, one for the Make of a car, the other for the Model, both bound to a database with separate SQLDataSources, and using a distinct statement. I add "All" at the top of both by setting appendDataBoundItems = true and adding items named all. Then when I fill the Make with a querystring all the model items get added twice (but only the databound items).Here's my code:
<asp:DropDownList ID="DropDownMake" runat="server"
DataSourceID="SqlMakes" DataTextField="Make" DataValueField="Make"
AppendDataBoundItems="True" EnableViewState="False" AutoPostBack="True">
<asp:ListItem Selected="True" Value="All">All</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownModel" runat="server"
AppendDataBoundItems="True" AutoPostBack="True" DataSourceID="SqlModels"
DataTextField="Model" DataValueField="Model" EnableViewState="False">
<asp:ListItem>All</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlMakes" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT DISTINCT [Make] FROM [Parts]">
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlModels" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT DISTINCT [Model] FROM [Parts] WHERE ([Make] = @Make)">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownMake" Name="Make"
PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
'And in the VB file:
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
DropDownMake.SelectedValue = Request.QueryString("Make")
DropDownModel.SelectedValue = Request.QueryString("Model")
End Sub
If I remove the line "DropDownMake.SelectedValue = Request.QueryString("Make")" it doesnt produce duplicates anymore. What is going on?? I swear I've spent more time developing entire iphone app.
I have a dropdownlist that contains items from a database. The set of items are unlikely to ever change. At the moment, whenever a user tries to access the View with the dropdownlist, the code retrieves the data each time from the DB. I would like to change this so that the set of items are cached and load on the application start only.
Could somebody indicate the best mechanism for this scenario? I have read up on Enterprise library which is my current preference, though any alternatives (with reasons) would be welcome.
How can I copy items hardcoded from one dropdown box to another keeping the keys and values?
drpTypes.Items.Add(new ListItem("Tipos de Acções", "1"));
drpTypes.Items.Add(new ListItem("Tipos de Combustível", "2"));
drpTypes.Items.Add(new ListItem("Tipos de Condutor", "3"));
drpTypesCreateEdit.Items.AddRange(drpTypes.Items);
1: I have a .html file that has some markup with some placeholder tags.
[code]...
4: PersonInfo.aspx is literally empty since I am injecting html from code-behind.
When the PersonInfo.aspx is called the html-template markup with appropriate values in the placeholder will be displayed. Also there are chances I would like to send the final markup in an html email (though that is not part of the question as I know how to email).
Is this the best way to fill values in my html-template or is the any other better alternative?
Note: This is a very simple sample example. My class is very complex involving objects as properties and also my html template have 40-50 placeholders.
So code in my step 3 will need 40-50 Replace statements.
I have a dropdownlist in a formview that looks like this:
<asp:DropDownList ID="DropDownList5" runat="server" AppendDataBoundItems="True"
DataSourceID="SqlDataSource6" DataTextField="StaffName"
DataValueField="StaffName" SelectedValue='<%# Bind("LetterName") %>'
Width="155px">
<asp:ListItem Value=""> </asp:ListItem>
</asp:DropDownList>
I am trying to add the value from a textbox which is also in the formview into the dropdownlist as a list item. I currently have this code for it:
Protected Sub Formview1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.PreRender
Dim dropdown As DropDownList
Dim listvalue As TextBox
dropdown = FormView1.FindControl("dropdownlist5")
listvalue = FormView1.FindControl("textbox1")
dropdown.Items.Add(New ListItem(listvalue.Text, listvalue.Text))
End Sub
This code works and adds the new item to the dropdownlist if I have no SelectedValue set for my dropdownlist. However when I set the selectedValue I get the error message:
"'DropDownList5' has a SelectedValue which is invalid because it does not exist in the list of items.
Parameter name: value"
This is the bit I dont understand because the value does now exist in the list of items as it was added in from the textbox value. Does it try to do the selectedValue before adding my list item? If so how can I add the list item first, or do I need to set the selectedValue in the code after adding the list item?