在多个页面上使用相同的表单?

时间:2011-03-18 14:53:15

标签: asp.net vb.net user-controls

我正在编写一个应用程序,我有一个用户表单,对于用户和管理员来说都是一样的。在不同的页面上。

我想只创建一次表单,然后能够将它放在两个不同的aspx文件中。

我尝试使用“控件”,但是尝试从aspx页面访问控件上的字段以进行计算等等,它变得非常复杂。

有另一种方法吗?在一个地方创建一个表单,能够将它添加到任何aspx页面,并且可以轻松访问它的控件吗?

3 个答案:

答案 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”)

从子页面访问母版页上的控件 编辑:您似乎想重用常用功能,然后您可能希望使用用户控件,如下例所示:

http://msdn.microsoft.com/en-us/library/3457w616.aspx

答案 2 :(得分:0)

你创建了控件,并且不使用findControl()方法来访问你UserControl里面的控件,这是不可行或不正确的解决方案。

最好使用Properies。定义属性,因此您的控件可以通用化,您可以在多个页面上使用它。