【问题标题】:ASP:ListItem store objectASP:ListItem 存储对象
【发布时间】:2012-08-23 08:18:37
【问题描述】:

我有一个<asp:ListItem> 控件,我希望将其扩展为具有 2 个值。有人可以帮我做这件事吗?

基本上我想要<asp:ListItem value="x" value2="b" text="Hello">

有谁知道我如何做到这一点。我考虑过创建一个对象并将其存储在使用适当的 .ToString() 方法提交的值中,但是我只能将字符串存储在列表项中。

如果我用 HTML 创建它,我可以抛出一个属性并读取它们,但我在后面的代码中创建我的列表项,所以我不确定如何添加属性。

更新

一种方法是使用 HTML5 中使用的“数据-”。但是对于双向数据覆盖控件以添加附加值,以便 ViewState 缓存它。

【问题讨论】:

  • 我认为出于您使用的原因,您只需将它们作为公共字符串变量添加到您的代码后面即可。
  • 同意!我认为 that (添加 value2 属性)是不可能的。
  • 你有一点关于属性stackoverflow.com/a/8124098/360171

标签: asp.net html


【解决方案1】:

如果您的要求是通过客户端脚本使用value 属性,那么我建议存储 jsonString。这是一种解决方法。

<asp:ListItem value="{'d': ['x','b'] }" text="Hello">

示例:

Product.cs

public class Product
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string Desc { get; set; }
    public string JsonString
    {
        get
        {
            return "{\"d\": [\"" + ID + "\",\"" + Desc + "\"]}";
        }
    }
}

绑定List&lt;T&gt;

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        List<Product> products = new List<Product>()
        {
             new Product(){ ID=1, Name="A", Desc="A1"},
             new Product(){ ID=2, Name="B", Desc="B1"},
             new Product(){ ID=3, Name="C", Desc="C1"},
        };

        ListBox1.DataSource = products;
        ListBox1.DataTextField = "Name";
        ListBox1.DataValueField = "JsonString";
        ListBox1.DataBind();
    }
}

标记

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#ListBox1").change(function () {
                var sel = $(this).val();
                v = jQuery.parseJSON(sel);
                console.log(v.d[0] + " " + v.d[1]);
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ListBox ID="ListBox1" runat="server"></asp:ListBox>
    </div>
</body>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多