Tengo una aplicación web, el problema es que el texto de la etiqueta no se actualizará con el primer clic, tengo que hacer clic dos veces en el botón, depurado de código, y descubrí que la etiqueta no recive los datos hasta después del segundo clic,ASP.NET C#, necesito presionar un botón dos veces para que suceda algo
Aquí está mi código:
System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();
System.Data.SqlClient.SqlConnection connection;
string CommandText;
string game;
string modtype;
bool filter;
protected void Page_Load(object sender, EventArgs e)
{
labDownloadList.Text = null;
//Session variables:
if (Session["Game"] != null)
{
game = Convert.ToString(Session["Game"]);
}
if (Session["ModType"] != null)
{
modtype = Convert.ToString(Session["ModType"]);
}
if (Session["FilterBool"] != null)
{
filter = Convert.ToBoolean(Session["FilterBool"]);
}
string ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\inetpub\\wwwroot\\stian\\App_Data\\Database.mdf;Integrated Security=True;User Instance=True";
connection = new System.Data.SqlClient.SqlConnection(ConnectionString);
System.Data.SqlClient.SqlDataReader reader;
command = connection.CreateCommand();
connection.Open();
CommandText = "SELECT * FROM Command";
if (filter)
{
CommandText = "SELECT * FROM Command WHERE Game='" + game + "' AND Type='" + modtype + "'";
}
command.CommandText = CommandText;
reader = command.ExecuteReader();
labDownloadList.Text = "";
while (reader.Read())
{
string game = reader.GetString(1);
string author = reader.GetString(2);
string downloadlink = reader.GetString(3);
string size = reader.GetString(4);
string description = reader.GetString(5);
string version = reader.GetString(6);
string screenshotlink = reader.GetString(7);
Int64 AmountDownloaded = reader.GetInt64(8);
labDownloadList.Text += "Game: " + game + "<br>";
labDownloadList.Text += "Author: " + author + "<br>";
labDownloadList.Text += "Size: " + size + "<br>";
labDownloadList.Text += "Description: " + description + "<br>";
labDownloadList.Text += "Version: " + version + "<br>";
labDownloadList.Text += "<img src='" + screenshotlink + " /><br>";
labDownloadList.Text += "Downloaded: " + AmountDownloaded + " times<br><hr>";
labDownloadList.Text += "<a href='" + downloadlink + "'>Download</a><br>";
}
}
protected void Page_UnLoad(object sender, EventArgs e)
{
Session["Game"] = game;
Session["ModType"] = modtype;
Session["FilterBool"] = filter;
connection.Close();
}
protected void btnFilter_Click(object sender, EventArgs e)
{
game = lstGames.SelectedValue;
modtype = lstTypeMod.SelectedValue;
filter = true;
}
algunos comentarios de OT: - que no es necesario hacer Convert.ToString (Session [ "juego"]). Session [name] es un objeto, por lo que solo tiene que devolverlo: (cadena) Session ["game"] - Debe buscar SQL parametrizado, ya que está muy abierto a los ataques de inyección –
Definitivamente busque SQL parametrizado. –