jag försöker konvertera på detta sätt, men det går inte. Vad gör jag för fel? Inget av dessa sätt fungerar och jag får ut rätt siffra i btn.CommandArgument. (kanske är nåt stavfel nu har skrivit direkt i textboxen) Skulle man kunna få lite mer ingångsvärden? Alternativ ett och tre borde fungera ifall du verkligen har strängrepresentationen av ett tal i egenskapen. Alternativ två borde ge ett kompileringsfel. Det ser ut så här När jag klickar på LinkButton. Den ser ut så här Där du har skrivit att koden är arbetssökande (want work), menar du att den inte fungerar (won't work)? Lessen för min dåliga engelska:( Jag har hittat en lösning. Om det är rätt eller fel vet jag inte. Nu fick jag ett nytt problem. När man klickar på länken första gångne så fungerar det, men när man klickar fler gångner så får man felet <b>Procedure or function getAllPosts has too many arguments specified</b> > Detta fungerar inte //sdsAllPosts.SelectParameters.Add("id", TypeCode.Int32, "catID"); Jag hade blandat ihop det där. Du vet inte vad det kan vara för fel när jag klickar fler gånger på länken? Det låter som att du lägger till parametrar för varje postback. Sparar den parametrarna i ViewState? I så fall så kan du ju rensa bort parametrarna innan du lägger in nya. Löste det så härHur ska jag konvertera?
<code>
int myID = Convert.ToInt32(btn.CommandArgument);
int myID = (int)btn.CommandArgument;
int myID = Int.Parse(btn.CommandArgument.ToString());
</code>Sv: Hur ska jag konvertera?
Är det C#?
Vad är det du vill konvertera?Sv: Hur ska jag konvertera?
Det skulle hjälpa om du kunde specificera närmare vad du menar med "Inget av dessa sätt fungerar". På vilket sätt fungerar det inte? Får du ett oväntat resultat? Får du ett felmeddelande?Sv:Hur ska jag konvertera?
<code>
LinkButton btn = (LinkButton)sender;
int catID = Convert.ToInt32(btn.CommandArgument); // Want work..
//int catID = int.Parse(btn.CommandArgument.ToString());// Want work...
Label1.Text = "Trådar till kategori med id = " + catID.ToString();
sdsAllPosts.SelectCommand = "getAllPosts";
sdsAllPosts.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
//sdsAllPosts.SelectParameters.Add("id", TypeCode.Int32, "catID"); // want work
sdsAllPosts.SelectParameters.Add("id", TypeCode.Int32, "1"); // works
sdsAllPosts.SelectParameters[0].Direction = ParameterDirection.Input;
</code>
Skriver jag ut det jag har commandargument så här:
<code>
l.Text = "Detta är post nummer: " + catID;
p.Controls.Add(l);
</code>
Så får jag ut rätt nummer. Felmeddelandet jag får är i andra fallet <b>The input string was not in correct format</b>.Sv:Hur ska jag konvertera?
<code>
<asp:LinkButton ID="lb" onClick="grid1_Click" CommandName="cat" CommandArgument='<%#Eval("catID") %>' runat="server" Text='<%#Eval("catName")%>' />
</code>Sv: Hur ska jag konvertera?
När du skriver ut catID och det fungerar, hur har du lagt in värdet i variabeln catID?Sv:Hur ska jag konvertera?
Detta fungerar inte //sdsAllPosts.SelectParameters.Add("id", TypeCode.Int32, "catID"); men ändrar jag till en siffra istället för catID så hämtas rätt kategori. När jag skriver ut catID får jag ut rätt värde. Så som jag ser det måste det vara nåt med konverteringen.Sv: Hur ska jag konvertera?
<code>
string catID = btn.CommandArgument.ToString();
//Label1.Text = "Trådar till kategori med id = " + catID.ToString();
lblResult.Visible = true;
//int catID = 2;
lblResult.Text = "argument: " + catID.ToString();
sdsAllPosts.SelectCommand = "getAllPosts";
sdsAllPosts.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
sdsAllPosts.SelectParameters.Add("id", TypeCode.Int32, catID);
sdsAllPosts.SelectParameters[0].Direction = ParameterDirection.Input;
</code>Sv:Hur ska jag konvertera?
Vad kan det vara?Sv: Hur ska jag konvertera?
Naturligtvis inte. Strängen "catID" går inte att konvertera till ett tal.Sv:Hur ska jag konvertera?
Sv: Hur ska jag konvertera?
Sv: Hur ska jag konvertera?
<code>
protected void grid1_Click(object sender, EventArgs e)
{
clearParam();
//// Vi har klickat på en kategori och kan hämta ut vilket catID användaren vill se
LinkButton btn = (LinkButton)sender;
//int catID = Convert.ToInt32(btn.CommandArgument);
string catID = btn.CommandArgument.ToString();
//Label1.Text = "Trådar till kategori med id = " + catID.ToString();
lblResult.Visible = true;
//int catID = 2;
lblResult.Text = "argument: " + catID.ToString();
sdsAllPosts.SelectCommand = "getAllPosts";
sdsAllPosts.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
sdsAllPosts.SelectParameters.Add("id", TypeCode.Int32, catID);
sdsAllPosts.SelectParameters[0].Direction = ParameterDirection.Input;
}
public void clearParam()
{
sdsAllPosts.SelectParameters.Clear();
}
</code>