如何动态检索ListItem值

本文关键字:检索 ListItem 动态 何动态 | 更新日期: 2023-09-27 18:00:06

我有以下代码:

<asp:BulletedList ID="filingList" runat="server" DisplayMode="LinkButton"
            onclick="filingList_Click">
</asp:BulletedList>
<asp:Literal ID="filingLiteral" runat="server"></asp:Literal>

在后台,我用ListItems填充项目符号列表(其中AlternateFileUrl是指向以html格式格式化的文本的url字符串):

foreach (ShortFiling file in filingArray)
{
    filingList.Items.Add(new ListItem(file.Type.ToString() + " " 
    + file.Date.ToString(), file.AlternateHtmlFileUrl));
}

如何访问在filingList中单击的项目的value的文本,然后将其设置为asp:Literal控件?这是我定义的空事件处理程序,并假设我需要放入代码来将asp:literal设置为指定ListItem的值。

protected void filingList_Click(object sender, BulletedListEventArgs e)
{
    //put code here to set the asp:Literal text to 
    //the value of the item that is clicked on 
}

如何动态检索ListItem值

protected void filingList_Click(object sender, BulletedListEventArgs e)
{
    var value = filingList.Items[e.Index].Value;
    filingLiteral.Text = value;
}

更新2

好的,如果你想要来自该URL的文本,保持你的标记原样,并将后面的代码更改为:

protected void filingList_Click(object sender, BulletedListEventArgs e)
{
    var value = filingList.Items[e.Index].Value;
    using(var client = new WebClient())
    {
        string downloadString = client.DownloadString(value);
        filingLiteral.Text = downloadString;  
    }
}

您将需要添加System.Net命名空间。

如果我正确理解了你的问题,你只需要处理BulletedList控件的点击事件,比如:

protected void filingList_Click(object sender, BulletedListEventArgs e)
{
    BulletedList bull = (BulletedList)sender;
    ListItem li = bull.Items(e.Index);
    filingLiteral.Text = li.Value;
}