This message was discovered on microsoft.public.dotnet.framework.aspnet.
Responses highlighted in red are from those people who are likely to be able to contribute good, authoratitive information to this discussion. They include Microsoft employees, MVP's and others who IMHO contribute well to these kinds of discussions.
| Maziar Aflatoun |
Hi everyone,
I have the following code <asp:TemplateColumn HeaderText="Administator" Visible="True" ItemStyle-HorizontalAlign="Center"> <ItemTemplate> <asp:Label ID="IsAdministator" Runat="server" text='<%# FormatIsAdministator(DataBinder.Eval(Container.DataItem, "IsAdministator")) %>'> </asp:Label> </ItemTemplate> <EditItemTemplate> <asp:DropDownList ID="NewIsAdministator" Runat="server" CssClass="textbox1"> <asp:ListItem Value="0" Text="No"/> <asp:ListItem Value="1" Text="Yes"/> </asp:DropDownList> </EditItemTemplate> </asp:TemplateColumn>
Does anyone know how in EditItemTemplate I can preselect the ListItem in my DropDownList based on what's currently in the database (0 or 1 for NewIsAdministator dropdownlist)?
I tried: SelectedIndex = '<%# DataBinder.Eval(Container.DataItem, "IsAdministator") %>' but that failed
Thank you Maz.
|
|
| |
| |
| Davide Vernole [MVP] (VIP) |
Maziar Aflatoun <Click here to reveal e-mail address> typed: [Original message clipped]
Did you try in the method delegate to the ItemDataBound event ? Try this:
if(e.Item.ItemType == ListItemType.EdiItem) { ((DropDownList)e.Item.FindControl("NewIsAdministator")).SelectedValue = ((DataRowView)e.Item.DataItem).Row["IsAdministrator"]; }
-- Davide Vernole MVP ASP/ASP.NET Microsoft Certified Solution Developer
|
|
| |
| |
| Maziar Aflatoun |
I tried it
((DropDownList)e.Item.FindControl("NewIsAdministator")).SelectedIndex = (int)((DataRowView)e.Item.DataItem).Row["IsAdministrator"]; and it still fails.
I can't figure out why it's complaining
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.InvalidCastException: Specified cast is not valid.
Source Error:
Line 137: ((WebControl)e.Item.Cells[8].Controls[0]).CssClass = "button1"; Line 138: Line 139: ((DropDownList)e.Item.FindControl("NewIsAdministator")).SelectedIndex = (int)((DataRowView)e.Item.DataItem).Row["IsAdministrator"]; Line 140: Line 141:
Any idea why it's saying that?
Thank you Maz.
"Davide Vernole [MVP]" <Click here to reveal e-mail address> wrote in message news:Click here to reveal e-mail address... [Original message clipped]
|
|
| |
| |
| Davide Vernole [MVP] (VIP) |
Maziar Aflatoun <Click here to reveal e-mail address> typed: [Original message clipped]
Ok, I forgot a little thing. This is the correct piece of code (I hope so):
if(e.Item.ItemType == ListItemType.EdiItem) { ((DropDownList)e.Item.FindControl("NewIsAdministator")).SelectedValue = ((DataRowView)e.Item.DataItem).Row["IsAdministrator"].ToString(); }
As you know, in a DropDownList, the SelectedValue property is a string, so we have to convert the value received from the DataItem to a string value.
-- Davide Vernole MVP ASP/ASP.NET Microsoft Certified Solution Developer
|
|
| |
|
|
|
|
|
|
|