Filling a dropdownlist in a grid view with manual data - c#

I am looking to fill a dropdownlist within a gridview with manual data. Is there anyway to do this through the markup code? I am just trying to fill it with days etc. 1 day(s), 2 day(s), 3 day(s) etc. Here is the code for my drop down
<asp:TemplateField HeaderText="No. Days">
<ItemTemplate>
<asp:DropDownList ID="txtFinishDate" runat="server"></asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
I've tried filling it manually on the page load but it doesn't seem to work and I think it is because of the grid view. Sorry if the question seems vague and thanks in advance!

what you have, but you have to add items to the list.
<asp:TemplateField HeaderText="custom">
<ItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Text="[ select an item ]" Value="0"></asp:ListItem>
<asp:ListItem Text="yes?" Value="1"></asp:ListItem>
<asp:ListItem Text="no?" Value="2"></asp:ListItem>
<asp:ListItem Text="umm..." Value="3"></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>

Related

Selecting item from dropdownlist in c# asp.net [iOS]

I'm programming a website in asp.net c# which contain a dropdownlist inside the GridView, of this nature.
Please find the below code for more information.
<asp:TemplateField HeaderText="blahblah">
<ItemTemplate>
<asp:DropDownList runat="server" ID="placeID" CssClass="ddlPlaceID">
<asp:ListItem Text="1" Value="1"></asp:ListItem>
<asp:ListItem Text="2" Value="2"></asp:ListItem>
<asp:ListItem Text="3" Value="3"></asp:ListItem>
[...]
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
The problem is, the list does not drop down when pressed on an iPad/iPhone device. It works mighty fine on a desktop however. I'm quite the rookie with asp.net, so I am sure that the answer is why it doesn't work is obvious.

ASP.Net DropDownList in GridView - Codebehind always sees 1st item as selected

I am working on an ASP.Net application with code behind as C#. In an aspx page, there is a gridview control. One column contains dropdownlist, as follows:
<asp:GridView ID="gvModulesSem1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Grade" HeaderStyle-HorizontalAlign="Left" HeaderStyle-CssClass="gvModulesTextPadding">
<ItemStyle Width="120px" CSSClass="gvModulesTextPadding" />
<ItemTemplate>
<asp:DropDownList ID="ddlSelectGrade" Text='<%# Eval("Grade")%>' runat="server">
<asp:ListItem Value="-1.0">Select Grade</asp:ListItem>
<asp:ListItem Value="Distinction">Distinction</asp:ListItem>
<asp:ListItem Value="A">A</asp:ListItem>
<asp:ListItem Value="B+">B+</asp:ListItem>
<asp:ListItem Value="B">B</asp:ListItem>
<asp:ListItem Value="C+">C+</asp:ListItem>
<asp:ListItem Value="C">C</asp:ListItem>
<asp:ListItem Value="D+">D+</asp:ListItem>
<asp:ListItem Value="D">D</asp:ListItem>
<asp:ListItem Value="P">P</asp:ListItem>
<asp:ListItem Value="F">F</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
There are some other columns too, all of which contain labels. But, to keep it simple, I have removed the codes for the other columns.
In page load, when Page.IsPostBack is false, the GridView is bound to a DataTable (which has been filled). This populates the GridView. All the DropDownLists have the first item i.e. "Select Grade" selected.
As a user, I change the selected items of the dropdown lists. Then click a button (outside the grid). In the button click event procedure, when I try to read the selected item of any dropdown list, I find that it is always the first item.
How do I correct this problem?
Thank you.

Dropdownlist in Detailsview, not listing the items

Hello Everyone
I have a detailsview, where there are 3 bound fields and a template field.
The template field has a DropDownList, which I have connected to an AccessDataSource.
But when I run, the dropdownlist has just the "System.Data.DataRowView" as it's items.
I wish to get the items from DB to be listed down in DropDownList
This is my code
asp:TemplateField HeaderText="State/Province" SortExpression="State/Province">
<EditItemTemplate>
<asp:DropDownList ID="ddlState" runat="server" DataSourceID="AccessDataSource1"
onselectedindexchanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/db1.mdb"
SelectCommand="SELECT [State/Province_name] FROM [State/Province_List ]">
</asp:AccessDataSource>
</EditItemTemplate>
</asp:TemplateField>
Should I add "DataBinding" or "DataBound" event for DropDownList?? to make it perfect?
Help me regarding this issue
Thanks,
Arjun
Define the filed to use in the drop down list
<asp:DropDownList ID="ddlState" runat="server"
DataSourceID="AccessDataSource1"
DataTextField="State/Province_name"
DataValueField="State/Province_name"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>
If you have problems with this non-standard column name, try to use an alias
SELECT [State/Province_name] AS StateProv FROM [State/Province_List ]
(Is the space in [State/Province_List ] OK?)
Then use this one
<asp:DropDownList ID="ddlState" runat="server"
DataSourceID="AccessDataSource1"
DataTextField="StateProv"
DataValueField="StateProv"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>

Render dropdown selected value in gridview

<asp:TemplateField HeaderText="Division">
<ItemTemplate>
<asp:DropDownList ID="Division" runat="server">
<asp:ListItem Text="Select" Value="Select"></asp:ListItem>
<asp:ListItem Text="Computer" Value="Computer"></asp:ListItem>
<asp:ListItem Text="Electronics" Value="Electronics"></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
In i am not able to diplay the selected values in the dropdown which is already in the database.
If you are saying that you want to have the Division value for the row to be selected in the dropdown, you need to bind the SelectedValue property of the DropDownList to the field in your data source that contains the Division value. It would look something like this:
<asp:DropDownList ID="Division" runat="server" SelectedValue='<%# Bind("Division") %>' >
You can use Selected="True" as in:
<asp:ListItem Text="Select" Value="Select" Selected="True"></asp:ListItem>

Gridview's update event firing even though data is invalid in controls

I have an commandfield and few templatefields. The templatefields have validators attached to it and they show up proper messages when wrong data is selected. However when I click commandfield no error is shown and the event fires even though data is invalid. Morover, I have also checked Page.IsValid on server and all works out well even though data is in invalid state. This the markup:
<asp:TemplateField HeaderText="Exp. Date">
<ItemTemplate>
<asp:Label ID="lblExpiration" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Expiration")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate >
<asp:DropDownList ID="ddlMM" runat="server" ValidationGroup="vgExpDateGrid">
<asp:ListItem Value="-1">MM</asp:ListItem>
<asp:ListItem Value="1" >01</asp:ListItem>
<asp:ListItem Value="2">02</asp:ListItem>
<asp:ListItem Value="3">03</asp:ListItem>
<asp:ListItem Value="4">04</asp:ListItem>
<asp:ListItem Value="5">05</asp:ListItem>
<asp:ListItem Value="6">06</asp:ListItem>
<asp:ListItem Value="7">07</asp:ListItem>
<asp:ListItem Value="8">08</asp:ListItem>
<asp:ListItem Value="9">09</asp:ListItem>
<asp:ListItem Value="10">10</asp:ListItem>
<asp:ListItem Value="11">11</asp:ListItem>
<asp:ListItem Value="12">12</asp:ListItem>
</asp:DropDownList>
<span class="green"></span> /
<asp:DropDownList ID="ddlYY" runat="server" ValidationGroup="vgExpDateGrid">
</asp:DropDownList>
<span class="green"></span>
<asp:RequiredFieldValidator ID="rfvddlMM" ControlToValidate="ddlMM" Display="Dynamic" InitialValue="-1" runat="server" ValidationGroup="vgExpDateGrid">*</asp:RequiredFieldValidator>
<asp:RequiredFieldValidator ID="rfvddlYY" ControlToValidate="ddlYY" Display="Dynamic" InitialValue="-1" runat="server" ValidationGroup="vgExpDateGrid">*</asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField
UpdateText="Update" CausesValidation="true"
HeaderText="Update" ShowEditButton="true"
EditText="Update <br/>Exp. Date" ButtonType="Link" />
Please do not pay attention to the weird control names and styles. Basically the template field has dropdownlists of year and month. Year's drop down list is populated in rowdatabound event. As you can see validators are attached still commandfield works normally. Can anybody tell me what can be the problem?
At first glance I would say you do not have ValidationGroup="vgExpDateGrid" on asp:CommandField. Change your commandfield to:
<asp:CommandField ValidationGroup="vgExpDateGrid"
UpdateText="Update" CausesValidation="true"
HeaderText="Update" ShowEditButton="true"
EditText="Update <br/>Exp. Date" ButtonType="Link" />
or alternatively remove ValidationGroup from asp:RequiredFieldValidator

Categories

Resources