簡體   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