【问题标题】:VB Storing textbox value globaly in webformVB以Web表单全局存储文本框值
【发布时间】:2014-03-16 18:04:36
【问题描述】:

我简直无法理解这一点。

我有 1 个输入框 (textbox1) 和许多显示来自数据库的数据的文本框,在输入 textbox1 中的值后显示数据并清空 textbox1 以便可以输入另一个值等等。

我还有第二个按钮用于编辑其他文本框中的值(为此目的启用)所以当我决定更改这些值并在数据库中更改它们时,我需要来自 textbox1 的值,以便我可以识别位置数据库中的数据。

我不知道如何将该值存储在 Button1_click 中,以便可以在 Button2_click 中调用它。我知道我不能将它设置为子。我试图设置另一个 sub 来存储 textbox1 值并调用两个按钮,但这没有用。

【问题讨论】:

    标签: vb.net button macros textbox


    【解决方案1】:

    .NET 为您提供了许多选项,这些选项将跨回发保留来自 textbox1 的数据。在您的情况下,我个人会选择隐藏字段。

    只需向您的标记添加一个隐藏字段(我在示例中将其命名为 Hiddenfield1 以保持一致性),该字段将包含执行 Button1_click 时 textbox1 的最新值:

    <asp:Hiddenfield id="Hiddenfield1" runat="server" />
    

    然后对于您的事件处理程序:

    Sub Button1_click(sender As Object, e As EventArgs)
        Hiddenfield1.Value = Textbox1.Text
        'Add your code to grab data from your database here.
    End Sub
    
    Sub Button2_click(sender As Object, e As EventArgs)
        'You still have access to the value stored in Hiddenfield1 here, do with it as you please!
    End Sub
    

    关于在回发中保持状态有很多答案 (here, for example)。

    另一种常见的方法是直接使用视图状态,但我更喜欢 hiddenfield 方法,因为它利用了视图状态,但为您做了(非常轻微的)艰苦的工作。

    【讨论】:

    • 但是如何声明那个变量呢? Dim HiddenField1 = New HiddenField() 不适用于 Button2。对不起新手问题?
    • 我用 Session.Add 弄明白了
    • 我已经编辑了帖子以包含隐藏字段的声明,尽管您似乎选择了不同的方法。 hiddenfield 的一个优点是,如果您需要,该值将在客户端可用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多