【问题标题】:Edit The listbox selected text in Runtime asp.net在运行时 asp.net 中编辑列表框选定的文本
【发布时间】:2016-03-07 17:21:15
【问题描述】:

我在 asp.net 中有一个列表框 我尝试当用户在运行时单击它的项目时可以更改该项目的文本而不更改项目的顺序。 所以我尝试在单击它时制作“编辑”按钮以获取项目值 作为

 protected void btnEditListValue_Click(object sender, EventArgs e)
        {
            string listvalue = lstParameters.Items.IndexOf(lstParameters.SelectedItem).ToString();
            string listText = lstParameters.SelectedItem.ToString();
        }

然后我将从字符串listText 中填充文本框值以使用户能够编辑

在那之后我应该怎么做才能保持列表框的顺序不变而不删除并再次插入

请帮忙

【问题讨论】:

  • 为什么要把选中项的索引转换成字符串呢?你想用listvalue做什么?
  • @TimSchmelter 也有问题,listText 一直获取第一项的值,而 listvalue 只是为了测试我没有使用它
  • 也许您在每次回发时都对 ListBox 进行数据绑定,而不仅仅是 if(!isPostBack){DataBindYourListBox();}。然后所有更改或事件都将丢失。
  • @TimSchmelter in if(!isPostBack) 我清除了lstParameters.Items.Clear();,如果我删除它,它将自动回发并在旧数据上附加新数据
  • 你在哪里追加数据?您根本不应该在回发时附加项目或对 ListBox 进行数据绑定。还是您禁用了视图状态?但是,当然,如果您清除项目,则除了第一个(这意味着根本没有)之外,您将没有选定的项目。

标签: c# asp.net listbox


【解决方案1】:

您可以覆盖ListItem.Text, f.e.当用户更改文本时:

protected void TextBox1_TextChanged(object sender, EventArgs e)
{
   if(lstParameters.SelectedIndex >= 0 && !String.IsNullOrWhiteSpace(TextBox1.Text))
   {
       ListItem selectedItem = lstParameters.Items[lstParameters.SelectedIndex];
       selectedItem.Text = TextBox1.Text;
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多