【问题标题】:asp.net drop down list duplicated itself when post back回发时,asp.net下拉列表重复了自己
【发布时间】:2014-03-29 10:09:10
【问题描述】:

这是一个很奇怪的问题

当我更改下拉列表的值时,会显示一个新的下拉列表。我很困惑,

要知道我在说什么,请查看这些图片。

编辑

绑定代码

    CallerId = Request["CallerID"];
    if (String.IsNullOrWhiteSpace(CallerId)) return;
    var results = ZumaDa.GetCustomerInformation(CallerId);
    rowCount = results.Rows.Count;
    CallerId = rowCount > 0 ? results.Rows[0][4].ToString() : CallerId;
    if (rowCount > 1)
    {
        ListView1.Enabled = false;
        GridView1.DataSource = results;
        GridView1.DataBind();
    }
    else
    {
        GridView1.Enabled = false;
        ListView1.DataSource = results;
        ListView1.DataBind();
    }

该代码在页面加载中,而不是在 !ispostback 上

【问题讨论】:

  • 两张图片看起来一样...
  • @SudhakarTillapudi no no :) 第二个在顶部有额外的下拉列表,请看。好奇怪
  • @SudhakarTillapudi 请帮忙
  • @jadarnel27 总是Itesm[0] 还是我需要使用另一个索引?
  • @jadarnel27 你说的adding the listView markup pelase 是什么意思?对不起,我是 asp.net 的新手

标签: c# asp.net drop-down-menu


【解决方案1】:

由于您使用 ListView 标记和 Page_Load 代码更新了您的问题,因此在您将数据绑定代码包装在 if (!Page.IsPostBack) 块中后,重复 DropDownList 的问题似乎消失了。

代码中的一个问题是,在 SelectedIndexChanged 事件中,您正在 ListView 中搜索 DropDownList 和 TextBox。您需要搜索发生 SelectedIndexChanged 事件的 ListViewItem 控件。

为此,您可以首先从“sender”参数中获取 DropDownList。然后你应该找到 DropDownList 的“NamingContainer”控件,然后搜索它。像这样:

var dropDown = (DropDownList)sender;
var visitID = (TextBox)dropDown.NamingContainer.FindControl("visitID");

根据您的标记,第二行代码可能需要额外的“.NamingContainer”。

【讨论】:

  • 首先,让我们尝试解决重复的问题,您说您需要更多代码,我将编辑我的问题给您代码。
  • 这是个好主意!我会注意你的编辑,@MarcoDinatsoli。
  • 请帮忙,我需要帮助
  • 不,它是空的,但是看,我试图将更新面板放在 td 内,第二个选择没有显示,但输入中的文本也没有显示,所以有 2可能性。第一个,select的功能没有触发,第二个是写入输入文本的代码不正确,请问您有什么建议?
  • 请问有什么方法可以知道当我更改选择值时函数是否正在触发?我无法设置断点,因为我没有数据库,因此,每次我更改代码时,我都会在服务器上部署网站。然后我测试结果。
【解决方案2】:

我认为您需要在 !IsPostback 中绑定 listview 检查意味着何时回发它的 pageload 事件并第二次绑定下拉列表,如果不是,请分享绑定代码

【讨论】:

  • 我没听懂你说的,请解释一下。
  • 是的,我知道这一点,但你看到我是新来的,无法发表评论,这就是我通过答案提问的原因
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
  • 2016-06-23
  • 1970-01-01
相关资源
最近更新 更多