C#-从母版页重新加载选项卡
我在母版页上有一个FromDate和ToDate文本框和一个submit按钮。我有4个选项卡,带有4个不同URL的链接,显示各种报告 现在,在更改日期并单击提交按钮时,我是否可以根据日期更改更新/重新加载报告(选项卡)C#-从母版页重新加载选项卡,c#,asp.net,tabs,master-pages,C#,Asp.net,Tabs,Master Pages,我在母版页上有一个FromDate和ToDate文本框和一个submit按钮。我有4个选项卡,带有4个不同URL的链接,显示各种报告 现在,在更改日期并单击提交按钮时,我是否可以根据日期更改更新/重新加载报告(选项卡) 非常感谢:)我建议将“从日期”和“提交”按钮移动到用户控件。然后,您可以将其放在每个报表上,在控件上公开并连接更改的事件,并公开从最新文本框的属性以弹出到报表中 在VisualStudio中创建用户控件。如果您不确定如何执行此操作,请尝试链接 用文本框填充用户控件。大概是这样的:
非常感谢:)我建议将“从日期”和“提交”按钮移动到用户控件。然后,您可以将其放在每个报表上,在控件上公开并连接更改的事件,并公开从最新文本框的属性以弹出到报表中 在VisualStudio中创建用户控件。如果您不确定如何执行此操作,请尝试链接 用文本框填充用户控件。大概是这样的:
<div>
<asp:Label ID="FromDateLabel" Text="From:" AssociatedControlID="FromDateTextBox" runat="server" />
<asp:TextBox ID="FromDateTextBox" runat="server" />
<asp:Label ID="ToDateLabel" Text="To:" AssociatedControlID="ToDateTextBox" runat="server" />
<asp:TextBox ID="ToDateTextBox" runat="server" />
<asp:Button ID="UpdateButton" Text="Update" runat="server"
onclick="UpdateButton_Click" />
</div>
public partial class ReportDateControl : System.Web.UI.UserControl
{
public event EventHandler UpdateReport;
public string FromDate
{
get { return this.FromDateTextBox.Text; }
set { this.FromDateTextBox.Text = value; }
}
public string ToDate
{
get { return this.ToDateTextBox.Text; }
set { this.ToDateTextBox.Text = value; }
}
protected void UpdateButton_Click(object sender, EventArgs e)
{
if (UpdateReport != null)
{
UpdateReport(this, EventArgs.Empty);
}
}
}
<%@ Register Src="~/Controls/ReportDateControl.ascx" TagPrefix="myapp" TagName="ReportDateControl" %>
在.aspx页面中,您需要注册该控件,该控件可能如下所示:
<div>
<asp:Label ID="FromDateLabel" Text="From:" AssociatedControlID="FromDateTextBox" runat="server" />
<asp:TextBox ID="FromDateTextBox" runat="server" />
<asp:Label ID="ToDateLabel" Text="To:" AssociatedControlID="ToDateTextBox" runat="server" />
<asp:TextBox ID="ToDateTextBox" runat="server" />
<asp:Button ID="UpdateButton" Text="Update" runat="server"
onclick="UpdateButton_Click" />
</div>
public partial class ReportDateControl : System.Web.UI.UserControl
{
public event EventHandler UpdateReport;
public string FromDate
{
get { return this.FromDateTextBox.Text; }
set { this.FromDateTextBox.Text = value; }
}
public string ToDate
{
get { return this.ToDateTextBox.Text; }
set { this.ToDateTextBox.Text = value; }
}
protected void UpdateButton_Click(object sender, EventArgs e)
{
if (UpdateReport != null)
{
UpdateReport(this, EventArgs.Empty);
}
}
}
<%@ Register Src="~/Controls/ReportDateControl.ascx" TagPrefix="myapp" TagName="ReportDateControl" %>
在适当的地方更改名称和格式,但这会给您一个好主意。此外,您可以从母版页公开日期控件,并通过page.master属性访问它们。您需要强制转换到母版页的特定类型以获取其属性。谢谢,如何将它们移动到用户控件?你能给我举个例子吗?…谢谢你,杰伊,这完全奏效了,你让我开心了!!如果我需要向该用户控件添加更多内容,该怎么办??说一个下拉列表。。或者列表框?您可以向用户控件添加任何您喜欢的内容。然而,这可能是一个陷阱。一个用户控件应该很简单并且只有一个目的,否则它的重用机会就会减少;一般来说。像添加普通页面一样添加控件,然后公开重要属性,比如这里对文本框所做的操作。哦,我已经这么做了。我能够访问所选的值。。但是如何直接访问下拉列表呢?我应该使用FindControl吗?它不起作用了!您始终可以通过控件上的属性公开控件本身,但请将其设置为只读。