把数据绑定到控件,不知道大家用哪种方法? 很早之前,我一般在aspx中放置控件,在后台的代码中用代码直接给相应的控件设置属性的值。这样的方法优点是灵活,可以依据业务逻辑,灵活的设置控件的Text以及Visible。示例如下: <table> <tr> <td> 用户名 </td> <td> <asp:TextBox ID="tbName" runat="server" ></asp:TextBox> </td> </tr> </table> 然后后台里写代码: protected User OperData 不久之前,我发现在写好多字段的如果都这样写的话,会很累的,虽然效率会很高。所以我尝试采用如下的方式: 尽可以的避免在代码中直接写来给控件属性设置值,而通过前台的绑定来实现,如: <asp:TextBox ID="TextBox1" runat="server" Text='<%#OperData.Name %>'></asp:TextBox> 不过,这样的话,在后台也应该至少有一句绑定操作,像这样: protected void Page_Load(object sender, EventArgs e) 虽然绑定上了,但这里有一个问题,我们的页面上的控件,不是都是在 !Page.IsPostBack这个条件的时候要绑定,也许还要有别的要求。还有,既然已经Page.IsPostBack也是条件,我们要是不用在后台代码里写this.DataBind不是更好吗? 其实,说难也不难,我们来实现一个控件,这个控件用来自动绑定,且分条件的绑定。下面看下代码: namespace Iyond.Web.UI.WebControls 有了上面这个控件,我现在可以像下面一样写代码: <asp:NullPanel ID="panelFenInfo" runat="server" Visible='<%#this.IsEditMode%>' > <asp:TextBox ID="tbName" runat="server" Text='<%#this.OperData.Name %>'></asp:TextBox><asp:NullPanel><asp:NullPanel ID="panelInfo" runat="server" Visible='<%#!Page.IsPostBack%>' > <asp:TextBox ID="tbCompany" runat="server" Text='<%#this.OperData.Name %>'></asp:TextBox><asp:NullPanel> 后台代码,这时就不用写了。 写到这里,不知道大家看明白没有,我的文笔可真差,希望大家多在评论中指出。 相关文章: 2022-12-23 2022-02-12 2022-03-02 2021-11-13 2022-12-23 2021-11-26 2021-09-08 2021-12-20