Web Forms :: Record DropDown List Values As ID To The Database
Nov 11, 2010
i am using a list view to view, insert, update and delete my data for the admin page this admin page made for the news and we have categories for that so i need to use a drop down list for these categories and when the admin choose on of these categories records its value as an ID to the database.
I'm stuck with a problem to populate a DropDownList control with values from the database using item field template in read only mode. since I'm new to ASP.NET. Below is the code and the error I'm getting:
'PictureReadOnlyCategories' has a SelectedValue which is invalid because it does not exist in the list of items. Parameter name: value 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.ArgumentOutOfRangeException: 'PictureReadOnlyCategories' has a SelectedValue which is invalid because it does not exist in the list of items. Parameter name: value
The code for this is :
<asp:SqlDataSource ID="categoriesDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand ="SELECT [CategoryID], [Name] FROM [Categories] WHERE ([UserId] = @UserId)"> <SelectParameters>
<asp:QueryStringParameter Name="CategoryID" QueryStringField="ID" /> </SelectParameters> and ([UserId] = @UserId), the dropdown list control will populate values from the database but when i live those 2, it won't populate any value from the database. When i remove the <asp:QueryStringParameter Name="CategoryID" QueryStringField="ID" /> </SelectParameters>,and live ([UserId] = @UserId), i get the error : Must declare the scalar variable "@UserId".
I Have the gridview control with 2 dropdown list and 2 text boxes,When the textbox chnaged event happen 1 row will create and the dropdown back to initial values( its not retaining the selected values),I am binding the control after text changed method,Is there any properties needs to be set or any other way we can retain the values in postbacks?
I am developing page for maintaing employee record using Visual Studio 2008, MS SQL server 2005. I am able to fetch and display all the employee information in gridview, the gridview have the dropdown list to display the employee type [ Part Time, Full Time, Permanent , Contract ], in the item template i am having dropdown list. IN the dropdown list i am displaying this. But While saving the record in gridview the droppdown selected index are changed to 0 of other dropdown list.
the user may be change the dropdown value from permanent to contract, or so. but while click on the save button in gridview, all the previous selection are gone, and always showing the first record of dropdown list. I know this is happening because we are doing dropdown list bind on onRowDataBound.
I want to have a default value/item of "---Select One---" and then list all of the values from the SQL statement. Currently I am having trouble doing this. I tried to add it to the List Item but it doesn't show on the page.
when i click the dropdown list it is postbacking(since i made auto postback=true). on that time i am unable to get the selected value from dropdown list.
i manage to add recrod via jquery ajax call to webmethod but i want to update the dropdown list once the record is been added. i dont want to use update panel. what would be the best way of doing that.
i have 4 text boxes and 2 dropdowns are there when ever i fill it all values should place in grid view., after entering of 5 or 6 records, i click on SAVE button then ,i want to save those values in to Data Base ,which are at Grid view.....
Is it possible to display two column values from a SQL database in to one DDL? I have been trying to write a SQL query, where in I select two fields to be displayed in the DDL but when I run the application it only displays one. Not sure why. Here is my code below:
I am stuck at this point "Displaying a dropdown list of Categories with a --None -- Option. I want the gridview control to display 2 dropdown list one in read-only mode and the other in edit mode. When a record is in read-only mode, the dropdownlist's enabled property will be set to false."When it's on a read-only mode, it doesn't display the selected Category. it shows but the "No Category". When i click on edit to edit or change category, it doesn't display the selected category.
The example is given below( I am reading the book Sams Teach yourself ASP.NET 2.0 by Scott Mitchell. page 628)
<asp:Label ID="UserIdValue" runat="server" Visible="False"></asp:Label> <asp:SqlDataSource ID="picturesDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [Pictures] WHERE ([UserId] = @UserId) ORDER BY [UploadedOn] DESC" DeleteCommand="DELETE FROM [Pictures] WHERE [PictureID] = @PictureID" InsertCommand="INSERT INTO [Pictures] ([UserId], [CategoryID], [Title], [Description], [UploadedOn]) VALUES (@UserId, @CategoryID, @Title, @Description, @UploadedOn)" UpdateCommand="UPDATE [Pictures] SET [UserId] = @UserId, [CategoryID] = @CategoryID, [Title] = @Title, [Description] = @Description, [UploadedOn] = @UploadedOn WHERE [PictureID] = @PictureID"> <DeleteParameters> <asp:Parameter Name="PictureID" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="UserId" /> <asp:Parameter Name="CategoryID" Type="Int32" /> <asp:Parameter Name="Title" Type="String" /> <asp:Parameter Name="Description" Type="String" /> <asp:Parameter Name="UploadedOn" Type="DateTime" /> </InsertParameters> <SelectParameters> <asp:ControlParameter ControlID="UserIdValue" Name="UserId" PropertyName="Text"/> </SelectParameters> <UpdateParameters> <asp:Parameter Name="UserId"/> <asp:Parameter Name="CategoryID" Type="Int32" /> <asp:Parameter Name="Title" Type="String" /> <asp:Parameter Name="Description" Type="String" /> <asp:Parameter Name="UploadedOn" Type="DateTime" /> <asp:Parameter Name="PictureID" Type="Int32" /> </UpdateParameters> </asp:SqlDataSource> <br /> <asp:SqlDataSource ID="categoriesDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [CategoryID], [Name] FROM [Categories] WHERE ([UserId] = @UserId)"> <SelectParameters> <asp:ControlParameter ControlID="UserIdValue" Name="UserId" PropertyName="Text" /> </SelectParameters> </asp:SqlDataSource> <br /> <asp:SqlDataSource ID="maxPictureIDDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT MAX(PictureID) FROM Pictures WHERE UserId = @UserId"> <SelectParameters> <asp:ControlParameter ControlID="UserIdValue" Name="UserId" PropertyName="Text" /> </SelectParameters> </asp:SqlDataSource> <br /> <asp:Label ID="cannotUploadImageMessage" runat="server" Text="The photo could not be added to your album either because you did not specify a file to upload or the file specified was not a JPEG image with the file extension .JPG"></asp:Label> <br /> <asp:DetailsView ID="dvPictureInsert" runat="server" DataSourceID="PicturesDataSource" Height="50px" Width="125px" AutoGenerateRows="False" CellPadding="4" DataKeyNames="PictureID" DefaultMode="Insert" ForeColor="#333333" GridLines="None"> <AlternatingRowStyle BackColor="White" /> <CommandRowStyle BackColor="#D1DDF1" Font-Bold="True" /> <EditRowStyle BackColor="#2461BF" /> <FieldHeaderStyle BackColor="#DEE8F5" Font-Bold="True" /> <Fields> <asp:TemplateField HeaderText="Picture"> <InsertItemTemplate> <asp:FileUpload ID="imageUpload" runat="server" /> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="imageUpload" Display="Dynamic" ErrorMessage="There was no file selected" ValidationGroup="PictureAdd"></asp:RequiredFieldValidator> </InsertItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Category" SortExpression="CategoryID"> <EditItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("CategoryID") %>'></asp:TextBox> </EditItemTemplate> <InsertItemTemplate> <asp:DropDownList ID="pictureCategory" DataSourceID="categoriesDataSource" runat="server" DataTextField="Name" DataValueField="CategoryID" SelectedValue='<%# Bind("CategoryID") %>' Visible='<%# Bind("CategoryID") %>' AppendDataBoundItems="True"> <asp:ListItem Selected="True" Value="">-- Select Category --</asp:ListItem> </asp:DropDownList> </InsertItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Bind("CategoryID") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Title" SortExpression="Title"> <EditItemTemplate> <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Title") %>'></asp:TextBox> </EditItemTemplate> <InsertItemTemplate> <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Title") %>'></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" Display="Dynamic" ErrorMessage="you must provide a name for the title" ValidationGroup="PictureAdd"></asp:RequiredFieldValidator> </InsertItemTemplate> <ItemTemplate> <asp:Label ID="Label2" runat="server" Text='<%# Bind("Title") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Description" SortExpression="Description"> <EditItemTemplate> <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Description") %>'></asp:TextBox> </EditItemTemplate> <InsertItemTemplate> <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Description") %>'
I have a Detailsview grid with an SqlDatasource, this DVG is only going to be used to insert records. The primary purpose of the DS is to populate a DDL control in the insertItem Template that I created my code is this:
[Code]....
The DDL control populates correctly, but when I try to modify the INSERTCommand property in my DS, I try to assign the value to my parameters "TesterID" and "TesterDate" but the only options for controls to pick from, is the DGV but not the DDL in it. I assume it has to do with the InsertItem template but even if I reset it I still cannot pick the textbox as a control that would give the value to my parameters.
I did find a workaroun by build a public method and calling it in the onclick event of the insert button but looks like I have to create another connection to the database which to me seems unnecessary since I already have a DS and everything. how can I do this without having to use my method. here is my method just in case.
I have a table that has 3 fields (Individual-Id, LastName, and FirstName). I want to create a drop down table that displays both the FirstName and the LastName (example: Smith, John). The field Individual-Id is the 'value' field.
I have details view on a aspx page that contains two DropDownList control in a TemplateField one works and selected value is updated in the database and one will not up date the database , i have spent hours looking for the reason why the Yard field is not updated with the select value from the dropdown list in the templatefield called DropDownList1.
I have 3 drop down list boxes - One for month, day and year. I'm trying to get the value of what the user selects on those drop down list boxes. I have dynamically populated my drop down list boxes and I'm trying to output the end value on a label
private int month; private int day; private int year; protected void Page_Load(object sender, EventArgs e) { for (month = 0; month <= 12; month++) { DropDownList2.Items.Add(month.ToString()); } for (day = 0; day <= 31; day++) { DropDownList3.Items.Add(day.ToString()); } for (year = DateTime.Now.Year; year <= DateTime.Now.Year + 75; year++) { DropDownList4.Items.Add(year.ToString()); } } protected void Button4_Click(object sender, EventArgs e) { month = ? day = ? year = ? Label7.Text = month + "/" + day + "/" + year;
The problem right now is I can't figure out how to actually retrieve the value the user uses
I am trying to bind a record to a textbox using a Dropdown selected index change. I get the error.
Conversion failed when converting the nvarchar value 'DrFirstName DrLastName,Ph.D.' to data type int. is it because I concatenate the name and prefix of the DR into the Dropdown list like this,
Code: SELECT ID,EmailAddress, DrName + ',' + PreFix AS DrName FROM DrNames
Here is the dropdownlist code that I want to populate the textbox with the emailaddress in the table associated with Dr name and ID.
Code: Private Sub DropDownList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DropDownList1.SelectedIndexChanged Dim dt As New DataTable() If DropDownList1.SelectedItem.Text = "OTHER,..." Then txtRx1.Visible = True DropDownList1.Visible = False End If
the following content I created a table (Workers) with two columns(username,userid). Now i have Dropdownlist and textbox. Dropdownlist for Userid, Textbox for Username. If i click on the userid in dropdownlist, then the particular username should get displayed on the textbox. For this i have tried codings.
private void DropDownList() { OleDbConnection databaseConnection = new OleDbConnection(ConfigurationManager.ConnectionStrings[1].ConnectionString); databaseConnection.Open(); OleDbDataAdapter dataAdapter = new OleDbDataAdapter("Select userid from workers", databaseConnection); DataTable dataTable = new DataTable(); dataAdapter.Fill(dataTable); DropDownListMaterials.DataSource = dataTable; DropDownListMaterials.DataTextField = "userid"; DropDownListMaterials.DataValueField = "userid"; DropDownListMaterials.DataBind(); } protected void DropDownListMaterials_SelectedIndexChanged(object sender, EventArgs e) { OleDbConnection databaseConnection = new OleDbConnection(ConfigurationManager.ConnectionStrings[1].ConnectionString); databaseConnection.Open(); OleDbCommand MyCommand = new OleDbCommand("select username from gridview where userid=('" + DropDownListMaterials.SelectedItem + "')", databaseConnection); TextBoxUsername.Text = } private void DropDownList()
OleDbException (0x80040e57): The statement has been terminated. String or binary data would be truncated.] System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +745 System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +113
I would like someone to explain how I can pass a drop down list from the presentation layer to the controller using the Model View Controller Design Pattern from Microsoft in order to bind enum values to it?