如何将此示例aspx代码移动到aspx.cs以实现后面的代码?

问题描述

| 我有一个下拉列表,其中装有来自SQL数据库的数据。这可能是我在aspx文件中所拥有的。我如何(尽可能)将代码从aspx文件移动到aspx.cs文件,以实现技术背后的代码? 我的意思是至少是SELECT部分​​。 谢谢。
<asp:DropDownList ID=\"DropDownList1\" ... runat=\"server\"/>
...
<asp:SqlDataSource ID=\"SqlDataSource1\" runat=\"server\" 
ConnectionString=\"<%$ ConnectionStrings:Pubs %>\"
SelectCommand=\"SELECT [au_id],[au_lname],[au_fname],[state] FROM [authors] WHERE    [state] = @state\">
<SelectParameters>
<asp:ControlParameter Name=\"state\" ControlID=\"DropDownList1\"  PropertyName=\"SelectedValue\" />
</SelectParameters>
</asp:SqlDataSource>
    

解决方法

        假设您正在将网格与数据源ѭ1binding绑定,那么您可以在代码隐藏中捕获
SelectedIndexChanged
事件,并获取数据来绑定网格,如下所示: ASPX文件:
<asp:DropDownList ID=\"DropDownList1\" runat=\"server\" 
         OnSelectedIndexChanged=\"ddlChanged\" />
C#(代码隐藏):
protected void ddlChanged(object sender,EventArgs e)
{
    var cs=..;//get connection string
    using(var con=new SqlConnection(cs))
    {
        using(var com=new SqlCommand(con))
        {
            com.Open();
            com.CommandType = CommandType.Text;
            com.CommandText=\"SELECT [au_id],[au_lname],[au_fname],[state] 
                 FROM [authors] WHERE [state] = @state\";

            var state=....;//GET VALUE OF STATE FROM DROPDOWN
            var p = com.Parameters.Add(\"@state\");//set other properties
            p.Value = state;

            using(var adptr=new SqlDataAdapter(com))
            {
                var dtb=new DataTable();
                adptr.Fill(dtb);
                grid.DataSource=dtb;
                grid.DataBind();
            }
        }
    }
}
    ,        ѭ5是您正在使用的数据源对象的属性。这些可以根据需要在后面的代码中应用,但是您可能希望在重写的Init页面函数中进行操作,因为这可能会在asp.net页面生命周期的早期使用。例如,尽管我不确定确切的位置。
protected override OnInit(object sender,EventArgs e)
{
    dsMySource.SelectCommand = \"SELECT [au_id],[state] FROM [authors] WHERE [state] = @state\"

}
您还必须确保后面的代码也正确使用了@state参数,也可以将其作为属性(
dsMySource.SelectParameters
)进行访问。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...