我试图弄清楚如何访问和存储下拉列表中的选择以在 mainSQL 类的 SELECT 命令中使用。
这是细节。
DropDownList(在名为 Page.aspx 的页面上):
<asp:DropDownList
ID="selectInfo1"
runat="server"
AutoPostBack="True"
DataTextField="Info1"
DataValueField="Info1Key"
DataSourceID="SqlDB" >
</asp:DropDownList>
我试图访问 DDL 的函数(在单独的类文件中):
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;
}
这是唯一调用 getList 方法的函数(我很确定)——
private void FillListActivity()
{
List<ListInfo> objList = new List<ListInfo>();
objList = new mainSQL().getList();
ReportingGV.DataSource = objList;
ReportingGV.DataBind();
}
新问题——当我改变 DDL 时,GV 不再改变。
我可以解决的一种方法是更改 Page.aspx.cs 中的 Page_Load,如下所示:
起初:
protected void Page_Load(object sender, EventArgs e)
{
if(!isPostBack)
{
FillSalesActivity();
}
}
工作,但我会有问题吗?:
protected void Page_Load(object sender, EventArgs e)
{
FillSalesActivity();
}