Dropdownlist SelectedIndex


M

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.
 
Ad

Advertisements

D

Davide Vernole [MVP]

Maziar Aflatoun said:
Hi everyone,

I have the following code
.....
[CUT]
.....
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.

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"];
}
 
M

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 said:
Maziar Aflatoun said:
Hi everyone,

I have the following code
.....
[CUT]
.....
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.

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"];
}
 
Ad

Advertisements

D

Davide Vernole [MVP]

Maziar Aflatoun said:
[CUT]
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. [CUT]
Any idea why it's saying that?

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top