Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-从母版页重新加载选项卡_C#_Asp.net_Tabs_Master Pages - Fatal编程技术网

C#-从母版页重新加载选项卡

C#-从母版页重新加载选项卡,c#,asp.net,tabs,master-pages,C#,Asp.net,Tabs,Master Pages,我在母版页上有一个FromDate和ToDate文本框和一个submit按钮。我有4个选项卡,带有4个不同URL的链接,显示各种报告 现在,在更改日期并单击提交按钮时,我是否可以根据日期更改更新/重新加载报告(选项卡) 非常感谢:)我建议将“从日期”和“提交”按钮移动到用户控件。然后,您可以将其放在每个报表上,在控件上公开并连接更改的事件,并公开从最新文本框的属性以弹出到报表中 在VisualStudio中创建用户控件。如果您不确定如何执行此操作,请尝试链接 用文本框填充用户控件。大概是这样的:

我在母版页上有一个FromDate和ToDate文本框和一个submit按钮。我有4个选项卡,带有4个不同URL的链接,显示各种报告

现在,在更改日期并单击提交按钮时,我是否可以根据日期更改更新/重新加载报告(选项卡)


非常感谢:)

我建议将“从日期”和“提交”按钮移动到用户控件。然后,您可以将其放在每个报表上,在控件上公开并连接更改的事件,并公开从最新文本框的属性以弹出到报表中

在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吗?它不起作用了!您始终可以通过控件上的属性公开控件本身,但请将其设置为只读。