J'essaie de comprendre comment accéder et stocker la sélection d'une liste déroulante pour l'utiliser dans une commande SELECT dans la classe mainSQL.
voici les détails.
La DropDownList (sur une page appelée Page.aspx) :
<asp:DropDownList
ID="selectInfo1"
runat="server"
AutoPostBack="True"
DataTextField="Info1"
DataValueField="Info1Key"
DataSourceID="SqlDB" >
</asp:DropDownList>
La fonction où j'essaie d'accéder à la DDL (dans un fichier de classe séparé) :
public List<ListInfo> getList()
{
List<ListInfo> sList = new List<ListInfo>();
ListInfo objList = null;
//This is where I need to declare a variable called Info1Key and set it to the value of the ddl!
string queryString = "SELECT [UniqueID], [Date], [Info1], [Info2], [Info3] FROM [ReportedSales] WHERE ([Info1] = ' " + Info1Key + "') ORDER BY [Date]";
using (SqlConnection connection = new SqlConnection(sqlConString))
{
using (SqlCommand command = new SqlCommand(queryString, connection))
{
command.Connection.Open();
using (SqlDataReader dataReader = command.ExecuteReader())
{
while (dataReader.Read())
{
objList = new ListInfo();
objList.ID = Convert.ToInt16(dataReader["UniqueID"]);
objList.Date = Convert.ToDateTime(dataReader["Date"]);
objList.Info1 = (dataReader["Info1"] as int?) ?? 0;
objList.Info2 = (dataReader["Info2"] as int?) ?? 0;
objList.Info3 = (dataReader["Info3"] as int?) ?? 0;
sList.Add(objList);
}
}
}
}
return sList;
}
C'est la seule fonction (j'en suis presque sûr) qui appelle la méthode getList
private void FillListActivity()
{
List<ListInfo> objList = new List<ListInfo>();
objList = new mainSQL().getList();
ReportingGV.DataSource = objList;
ReportingGV.DataBind();
}
NOUVEAU PROBLÈME : le GV ne change plus lorsque je modifie la DDL.
Une façon de résoudre ce problème a été de modifier le Page_Load dans Page.aspx.cs comme suit :
A l'origine :
protected void Page_Load(object sender, EventArgs e)
{
if(!isPostBack)
{
FillSalesActivity();
}
}
Fonctionne, mais vais-je avoir des problèmes ?
protected void Page_Load(object sender, EventArgs e)
{
FillSalesActivity();
}