webForumDet fria alternativet

Få med värdet från dropdown till variabeln

.NET

6 svar · 219 visningar · startad av wwwstekaren

Medlem sedan apr. 2003234 inlägg
Frågan#1

Jag har några värden som jag vill ha med mig till en annan funktion som är dolda. De första fungerar bra när det bara är text.

Den sista variabeln ska hämtas från en dropdownlist.

string newListResponsible = ((Literal)e.Item.FindControl("newcontactResponsible")).Text;
			string newListName = ((Literal)e.Item.FindControl("newcontact")).Text; 
			string newListLastName = ((Literal)e.Item.FindControl("newcontactLastName")).Text;
			string newListEmail = ((Literal)e.Item.FindControl("newcontactEmail")).Text;
			string newListCompany = ((Literal)e.Item.FindControl("newcontactCompany")).Text;
			string newListContact = ((Literal)e.Item.FindControl("newcontactContact")).Text.ToString();

newListContact hur gör jag för att den variablen ska få ut rätt värde får bara ut sifor från vilken plats den har i dropdownlisten eller System.Web.UI.WebControls.Literal

Hoppas någon vet hur jag ska göra för att få med rätt värde från dropdownlisten:)

Medlem sedan maj 20012 812 inlägg
#2

om du först kastar den till en DropDownList istället för Literal, för controlen newcontactContact är väl en DropDownList?

string newListContact =  ((DropDownList) e.Item.FindControl("newcontactContact")).SelectedItem.Text.ToString();

- M

Medlem sedan apr. 2003234 inlägg
#3
string newListContact = ((DropDownList)e.Item.FindControl("newcontactContact")).SelectedItem.Text.ToString();

Funkar inte får felet
Specified cast is not valid.
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.

Medlem sedan maj 20012 812 inlägg
#4

1. newcontactContact är namnet på en dropdownlista.

2. I vilket event använder du denna kod. Det bero lite på, men om du kan hitta kontroler av typen Literal, så borde du kunna hitta kontrolen av typen Dropdownlist.

3. Om du sätter en break point på raden som vi pratar om. Och innan du kör den så öppnar du fönster som heter: Command Window, kan öppnas med CTRL+ALT+A.

I det fönster så skriver du följande kod:

e.Item.FindControl("newcontactContact")

Och så skriver du resultatet här.

- M

Medlem sedan apr. 2003234 inlägg
#5

1. Nej det är en <asp:Literal så är ser koden ut i aspx filen en del

<asp:TemplateColumn HeaderText="Typ av O2-kontakt" Visible="False">
							<ItemTemplate>
								<div class="name">
									<asp:Literal Runat="server" ID="newcontactContact" Text='<%# DataBinder.Eval(Container.DataItem, "Contact") %>'/></div>
							</ItemTemplate>
							<EditItemTemplate>
								<asp:Dropdownlist id="DataGridContactContact" Text='<%# DataBinder.Eval(Container.DataItem, "Contact") %>' width="100%" runat="server">
									<asp:ListItem Value="contact1">Nätverk</asp:ListItem>
									<asp:ListItem Value="contact2">Kund</asp:ListItem>
									<asp:ListItem Value="contact3">Leverantör</asp:ListItem>
									<asp:ListItem Value="contact4">Partner</asp:ListItem>
									<asp:ListItem Value="contact5">Prospekt</asp:ListItem>
									<asp:ListItem Value="contact6">Fd O2are</asp:ListItem>
								</asp:Dropdownlist>
							</EditItemTemplate>
						</asp:TemplateColumn>

2. Använder jag denna koden så blir det fel

string newListContact =  ((DropDownList) e.Item.FindControl("newcontactContact")).SelectedItem.Text.ToString();

Skriver jag så här så får jag ut en siffra alltså vilken placering det som jag har valt från dropdownlistan

string newListContact = ((Literal)e.Item.FindControl("newcontactContact")).Text;

Vad gör jag för fel eller hur kan jag göra?

Medlem sedan apr. 2003234 inlägg
#6

3. Mitt resultat

{System.Web.UI.WebControls.Literal}
Medlem sedan maj 20012 812 inlägg
#7

Att 2 inte fungerar är inte konstigt då det inte är en DropDownLista som du hämtar utan en Literal.

Frågan är, på din sida, när du inte är i EDIT-läge visas så fall en siffra eller visas texten. Det låter som en siffra visas, och så fall så har det med hur datagriden väljer att visa vilken post i DropDownListan som är vald istället för Texten, och eftersom jag inte jobbar med DataGrids så kan jag inte hjälpa dig :(

- M

271 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)