我正在编写一个应用程序,我有一个用户表单,对于用户和管理员来说都是一样的。在不同的页面上。
我想只创建一次表单,然后能够将它放在两个不同的aspx文件中。
我尝试使用“控件”,但是尝试从aspx页面访问控件上的字段以进行计算等等,它变得非常复杂。
有另一种方法吗?在一个地方创建一个表单,能够将它添加到任何aspx页面,并且可以轻松访问它的控件吗?
答案 0 :(得分:3)
这根本不是很难。您可以提供访问方法或将控件公开。
示例:按下按钮时显示控件内TextBox
内容的页面。
控制
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebApplication1.WebUserControl1" %>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
页
<form runat="server">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<Test:Control ID="ctlTest" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</form>
代码(如果TextBox1是公开的)
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = ctlTest.TextBox1.Text;
}
或者你可以在控件的代码中
public string GetText()
{
return TextBox1.Text;
}
在aspx代码页中
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = ctlTest.GetText();
}
这有什么困难?!
答案 1 :(得分:0)
你必须创建MasterPage:
http://msdn.microsoft.com/en-us/library/wtxbf3hh.aspx
这样您就可以在页面之间共享通用控件。母版页也可以嵌套。您可以通过Master.FindControl(“abc”)
从子页面访问母版页上的控件 编辑:您似乎想重用常用功能,然后您可能希望使用用户控件,如下例所示:答案 2 :(得分:0)
你创建了控件,并且不使用findControl()方法来访问你UserControl里面的控件,这是不可行或不正确的解决方案。
最好使用Properies。定义属性,因此您的控件可以通用化,您可以在多个页面上使用它。