【问题标题】:How to store hidden number in the textbox "property"如何在文本框“属性”中存储隐藏号码
【发布时间】:2011-10-16 20:43:38
【问题描述】:

我想在我的文本框中存储一些隐藏数据。按钮是否有像CommandArgument 这样的属性来存储我的数据?文本框位于网格视图的模板字段中,我在每个文本更改事件中获取这些数据。

编辑:

TabIndex='<%#((GridViewRow)Container).RowIndex%>'

protected void txt_evaluateWeights_TextChanged(object sender, EventArgs e)
        {
            calc();
           int index = ((RadTextBox)sender).TabIndex;
           ((RadTextBox)gv_Evaluation.Rows[index + 1].Cells[3].FindControl("txt_evaluateWeights")).Focus();
        }

我想用一个方便的属性替换 TabIndex 来保存我的索引。

【问题讨论】:

    标签: c# .net asp.net properties controls


    【解决方案1】:

    您可以在Hidden Field 控件中存储这样的值,因为textbox 没有任何这样的属性来存储这样的值。

    【讨论】:

    • 嗯,但我想要一个文本框 :) .
    • 你能否提供一些细节,也许我可以给你任何其他想法如何做到这一点。
    • 因为我在 text changed event 中得到了值。我想用其他属性替换tabindex 属性。在此链接中:stackoverflow.com/questions/6748625/…
    • 什么是其他属性?你实际上想要设置什么
    • 其他属性,我的意思是任何属性来保存我的隐藏索引。而不是标签索引,因为它会导致一些问题。
    【解决方案2】:

    我建议您使用 HTML5 的“data-”属性。然后你可以很容易地使用 jquery 提取它。

    <textarea name="MyTextArea" data-arbitraryName="HIDDEN TEXT" cols="40" rows="5">
        Enter your comments here...
    </textarea>
    
    <input type="text" name="MyInput" data-arbitraryName="HIDDEN VALUE" />
    

    然后你会像这样提取它

    $("textarea").data("arbitraryName") === "HIDDEN TEXT";
    $("input").data("arbitraryName") === "HIDDEN VALUE";
    

    现在有了 ASP.NET WebForm 控件,您可以在代码隐藏中将 arbirtaryName 添加到 RadTextBox

    var foo = "HIDDEN TEXT";
    RadTextBox1.Attributes.Add("arbirtaryName", foo);
    

    这里有一些进一步的阅读
    http://ejohn.org/blog/html-5-data-attributes/
    http://api.jquery.com/data/

    【讨论】:

    • 谢谢,但我不明白。我不需要在页面中显示textareainput type ="text"。你能通过我的asp.net代码解释更多吗?
    • 您可以在任何 html 元素上添加 data 属性(键/值对)。所以你会有&lt;input type="text" data-ColumnID="555"&gt; 然后你可以使用jQuery或你的CodeBehind从输入中推断出555并搜索ColumnID
    【解决方案3】:
    YourAttributeName='<%#((GridViewRow)Container).RowIndex%>'
    
    
    protected void txt_evaluateWeights_TextChanged(object sender, EventArgs e)
            {
                calc();
               int index = ((RadTextBox)sender).Attribute["YourAttributeName"];
               ((RadTextBox)gv_Evaluation.Rows[index + 1].Cells[3].FindControl("txt_evaluateWeights")).Focus();
            }
    

    【讨论】:

      【解决方案4】:

      您无法直接执行此操作,但使用隐藏的文本框可以让您在文本框旁边存储数据。稍加注意,您应该能够识别适当的隐藏控件,并在 textboxchanged 方法中提取相关数字。

      或者,如果您提供更多详细信息,可能还有其他方法可以实现您的目标。

      【讨论】:

      • 我想用其他属性替换tabindex 属性来保存索引,因为标签索引会产生一些问题。在这个链接中:stackoverflow.com/questions/6748625/…
      • 1.想要不是一个词。 2. 不要尝试重新利用现有属性。几乎总是会导致问题。
      • @Schroedingers Cat,不确定是否有必要在此编程站点上更正语法/拼写。有些人拼写很糟糕,但 just_name 很好地表达了他的意思。
      • @just_name,这是真的,不要重新利用现有属性,请参阅我的回答,了解如何拥有自己的自定义属性来完全满足您的需求。
      • 对不起 - 通常我不会打扰,但“想要”真的让我很生气。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 2013-07-12
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多