代码之家  ›  专栏  ›  技术社区  ›  jeffcook2150

ASP.NET数据绑定/从codebehind获取变量

  •  1
  • jeffcook2150  · 技术社区  · 15 年前

    所以我已经三年左右没有用过ASP.NET了,而且我对它很生疏。我的旧代码(在旧公司)不可供审阅。这个问题应该是非常基本的,但是我在这个问题上找不到任何好的、可靠的或者不是超级老的资源,所以我在这里问。

    我能再大致了解一下数据绑定吗?我记得它对选择框等非常有用,但我不记得它是如何工作的。一般来说,也许是一个不错的ASP.NET教程,因为我不记得它是如何处理POST请求的。我应该试试ASP.NET MVC吗?

    相关地,假设我的代码隐藏页中有一个公共变量。现在我通过说 Page.DataBind() 在页面加载函数的末尾,然后运行 <%# variable %> 在ASPX中,但这不是我以前记得的做法,我认为这不是很好的做法。从codebehind显示变量的最佳方法是什么?

    2 回复  |  直到 15 年前
        1
  •  1
  •   PhilPursglove    15 年前

    通常,数据绑定(至少在WebForms模型中)主要是分配要显示的字段、将DataSource属性设置为包含这些字段的适当对象(如DataReader、DataTable、集合)以及调用DataBind方法。所以为了你 select 箱子,你会放一个 <asp:dropdownlist runat="server" id="MyDropDownList"> 在页面的标记中,然后在代码中

    DataSet myDataSet;
    
    myDataSet = someDataMethod();
    
    MyDropDownList.DataTextField = fieldname;
    MyDropDownList.DataValueField = fieldname;
    MyDropDownList.DataSource = myDataSet;
    MyDropDownList.DataBind();
    

    或者,如果使用DataSource控件(例如,可以避免编写此类代码并在标记中执行该操作)。 <asp:SqlDataSource> , <asp:ObjectDataSource>

    <asp:SqlDataSource runat="server" id="MySqlDataSource" ConnectionString="aConnectionString" SelectCommand="MyStoredProcName" SelectCommandType="StoredProcedure"  />
    <asp:dropdownlist runat="server" id="MyDropDownList" DataSourceId="MySqlDataSource" DataTextField="fieldname" DataValueField="fieldname">
    

    为了将变量放在一个页面上,您以前可能会这样做的方法是在页面上放置一个标签或文本框,即在您的代码中,将变量赋给文本属性,例如。

    <asp:label runat="server" id="MyLabel" />
    
    MyLabel.Text = myVariable.ToString();
    

    回发:你可以测试 IsPostback 代码隐藏中的页的属性,以确定它是否为回发。在page加载方法之后,如果您已经定义了其他方法(例如,为DropDownList选择了IndexChanged),则会激发这些方法。

        2
  •  0
  •   Kelsey    15 年前

    我真的想用例子和代码等来回答这个问题。但我只是在重新整理那些在网络上已经存在多年的信息,并在博客和文章中被无数次解释。你可以从 this article which explains almost everything you need to know .

    我大胆地指出了我认为重要的一点,那就是我的一些略语。

    1. <%*% %gt;句法
    2. page.databind()与control.databind()的比较
    3. 数据绑定列表控件
    4. 中继器控制
    5. 数据列表控件
    6. 数据报控件
    7. 访问数据
    8. 数据集类
    9. DataReader类
    10. 列表控件模板中的绑定
    11. databinder.eval方法
    12. 显式铸造
    13. 项数据绑定事件

    至于通过网络表单学习MVC,则完全不同。它们都有优缺点,这取决于你的时间、你需要知道什么以及项目的哪些部分很重要。两个技术人员都可以完成相同的事情,因为他们都是以ASP.NET为核心的,只是方法不同,所以无论哪种方法都可以。

    推荐文章