.net ASCX 帮助传递信息和信息隐藏分区

发布于 2024-10-20 06:58:15 字数 207 浏览 2 评论 0原文

好吧,我正在尝试实现这一点:当用户单击带有文本 boses 的 ascx Web 用户控件上的按钮时,它首先显示一个隐藏的 DIV,该 div 包含一个 ascx Web 用户控件。基本上,我希望 Web 用户控件获取他们在第一个 Web 用户控件的框中键入的内容,然后根据用户在第一页的文本框中键入的内容应用 SQL 搜索。这是可能的还是我需要重新考虑我的策略?我正在用 C# 编写 SQL 语句。

Alright, I am trying to accomplish this: When a user clicks a button that is on a ascx web user control with text boses, it first displays a DIV that is hidden, this div contains a ascx web user control. Basically I want that web user control to grab what they typed in the boxes on the first web user control, and then apply to a SQL search from what the users type in the text boxes on the first page. Is this possible or do I need to rethink my strategy on this? I am programming in c# for the SQL statements.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

╭ゆ眷念 2024-10-27 06:58:15

这是可能的。

您可以定义接受文本输入的控件的属性,并使用直接字段访问、变量或会话变量公开值;然后,您可以在新显示的控件中使用 FindControl,如果找到,则利用现在公开的属性来收集所需的值。

例如,您的输入控件隐藏代码可能看起来像这样:

partial class MyControl : UserControl
{
    public string MyFieldValue
    {
        get { return MyFieldTextBox.Text; }
    }
}

在下一个控件中,要使用它,有点像这样:

partial class MyControl : UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var myControl = Page.FindControl("MyControlInstanceName") as MyControl;
        if (myControl != null)
        {
            var myFieldValue = myControl.MyFieldValue;
        }
    }
}

It is possible.

You can define properties of the control which accepts the text input, and expose the values using direct field access, variables, or session variables; you can then use FindControl from within the newly displayed control, and, if found, utilise the now exposed properties to gather the values required.

For instance, your input control code-behind might look something like this:

partial class MyControl : UserControl
{
    public string MyFieldValue
    {
        get { return MyFieldTextBox.Text; }
    }
}

And in the next control, to use it, a little like this:

partial class MyControl : UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var myControl = Page.FindControl("MyControlInstanceName") as MyControl;
        if (myControl != null)
        {
            var myFieldValue = myControl.MyFieldValue;
        }
    }
}
牵强ㄟ 2024-10-27 06:58:15

第二个用户控件是否嵌入到第一个用户控件中?

如果没有,您可以通过简单地将公共属性添加到用户控件来使用户控件之间的任何内容向上可用。这意味着可以从页面级别或包含的用户控件访问它们。例如,如果我有UCA、UCB、UCC

UCA 包含UCB 而UCC 被隐藏。

UCB 具有以下属性

public string UserEnteredName
{
   get { return NameTextBox.Text; }
}

UCC 具有以下属性和方法

public string UserEnteredName { get; set; }

public BindResults()
{
    UserEnteredLiteral.Text = UserEnteredName;
}

然后将其与 UCA 绑定在一起:

protected MyButton_Click(object sender, EventArgs e)
{
    UCC.UserEnteredName = UCB.UserEnteredName;
... some logic herre.
    UCC.BindResults();
}

如果您的按钮或提交操作存在于 UCB 中,您还可以从 UCB 引发一个可以在 UCA 中响应的事件。

Is the 2nd user control embedded in the 1st or not?

If not, you can make anything available upwards between user controls by simply adding public properties to your user controls. This means they can then be accessed from the page level or the containing user control. For example, if I have UCA, UCB, UCC

UCA contains UCB and UCC is hidden.

UCB has the following property

public string UserEnteredName
{
   get { return NameTextBox.Text; }
}

UCC has the following property and method

public string UserEnteredName { get; set; }

public BindResults()
{
    UserEnteredLiteral.Text = UserEnteredName;
}

Then tie it together with UCA:

protected MyButton_Click(object sender, EventArgs e)
{
    UCC.UserEnteredName = UCB.UserEnteredName;
... some logic herre.
    UCC.BindResults();
}

You can also raise an event from UCB that can be responded to in UCA if your button or submit action exists in UCB.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文