繁体   English   中英

将字符串属性双向绑定到ASP.NET WebForms中的TextBox

[英]Two-way binding of string property to TextBox in ASP.NET WebForms

我想实现一个最简单的(所以在我看来)一个TextBox的数据绑定到页面的一个属性,除了数据绑定应该是双向的,所以不是<%# Test %> ,我用<%# Bind("Test") %> (实际上,目标是将单个对象作为属性并绑定到其属性,但让我们从简单的事情开始。)我正在以下简单的代码上对其进行测试:

TestForm.aspx

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TestTextBox" runat="server" Text='<%# Bind("Test") %>' />
    </div>
    </form>
</body>
</html>

TestForm.aspx.cs:

using System;

namespace WebApplication1
{
    public partial class TestForm : System.Web.UI.Page
    {
        public string Test { get; set; }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Test = "Hello";
            }
        }

        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
            DataBind();
        }
    }
}

调用DataBind()会导致InvalidOperationException诸如Eval(),XPath()和Bind()之类的数据绑定方法只能在数据绑定控件的上下文中使用。

这种方法有什么问题?

可悲的是, EvalBind只能与数据绑定控件(例如网格)一起使用。 这是因为它们希望在具有当前数据项的命名容器(例如网格中的选定行)内执行。

因此,您可以使用该语法绑定到位于网格行模板之类的文本框中,而不是单独绑定文本框。

您应该使用以下任何一种

  1. Microsoft.Ajax库具有两种方式的数据绑定支持。
    1. 淘汰赛Js(Mv *样式,支持双向绑定)
    2. Angular Js(MV *样式,支持双向绑定)

使用上述框架,您可以检索json对象并将其直接绑定到html元素或属性中的任何一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM