gpt4 book ai didi

c# - ASP.Net 以声明方式将值从页面属性传递给用户控件

转载 作者:太空狗 更新时间:2023-10-29 23:35:34 25 4
gpt4 key购买 nike

我需要找到一种方法以声明方式(不在代码隐藏文件中)将 ASP.Net 网页中的属性值传递给用户控件。以下是我正在尝试做的一个简单示例,但我无法让它工作。这是我在其中创建用户控件对象的 aspx 页面的标记:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs"  Inherits="_Default" %>
<%@ Register Src="~/MyUserControl.ascx" TagName="MyUserControl" TagPrefix="uc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<uc1:MyUserControl ID="MyUserControl1" runat="server"
UserControlProperty = '<%# Bind("PageProperty") %>' />
</div>
</form>
</body>
</html>

这是来自 aspx 页面的隐藏代码 (aspx.cs) 文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
public int PageProperty { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
PageProperty = 42;

}
}

这是来自用户控件(ascx 文件)的标记:

<%@ Control Language="C#" AutoEventWireup="true" 
CodeFile="MyUserControl.ascx.cs" Inherits="MyUserControl" %>

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

这是来自用户控件的隐藏文件 (ascx.cs) 的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class MyUserControl : System.Web.UI.UserControl
{
public int UserControlProperty { get; set; }


protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Text = UserControlProperty.ToString();
}
}

因此,我要做的就是将 aspx 页面中定义的 PageProperty 属性的值传递给用户控件以设置它的 UserControlProperty,然后在用户控件的文本框中显示该值。谁能告诉我我在这里做错了什么?

最佳答案

尝试

UserControlProperty = '<%= this.PageProperty %>'

或考虑阅读:http://support.microsoft.com/kb/307860#1b有 Page.DataBind() 和 Control.DataBind() 这样的东西。我不太确定你是否应该明确地调用它们,但可能是这样......

如果你还想要你的案例,你可以尝试通过字符串来完成:

public string UserControlProperty { get; set; }

它完美地工作。

关于c# - ASP.Net 以声明方式将值从页面属性传递给用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1560114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com