相关疑难解决方法(0)

如何填写as​​p:DropDown客户端?

我有一个带有两个<asp:DropDown>控件的网页:

在此输入图像描述

当用户选择一个国家,我想,以填补国家名单.


尝试#1 - OnSelectedIndexChanged

第一件事很简单:在OnSelectedIndexChanged第一次下拉期间,填写第二个框:

//be sure to set AutoPostBack of cbCountry to true in the properties window

protected void cbCountry_SelectedIndexChanged(object sender, EventArgs e)
{
   cbState.Items.Clear();
   FetchStatesForCountryIntoStateDropDown(cbState, cbCountry.SelectedValue);
   if (cbState.Items.Count > 0)
      cbState.SelectedIndex = 0;
}    
Run Code Online (Sandbox Code Playgroud)

这很好用,除了它触发页面刷新.发送帖子时用户被中断,并重新加载页面.页面不再是他们离开的地方,他们不再坐在下拉列表中.


尝试#2 - 老式的kludgey UpdatePanels

@Seglo称UpdatePanels是一种老式的kludge.但是因为我找不到更好的东西 - 让我们试一试!将内容包装在更新面板中,让它做到这一点:

在此输入图像描述

问题在于,当UpdatePanel更新时,它会删除两个控件并用新的控件替换它们.这意味着用户在第一个下拉列表中失去了焦点.人们已经建议使用javascript来尝试保存和恢复焦点的可怕的kludges.但我宁愿正确地做事.


尝试#3 - 仅UpdatePanel您需要更新的内容

我并不需要更新国家下拉菜单(也没有标签).我只需要更新下拉列表; 那么,为什么不换行在一个<asp:UpdatePanel>.实际上这是StackOverflow上建议的答案:

在此输入图像描述

这很有效.在国家下拉不失去焦点.该OnSelectedIndexChanged …

asp.net ajax

9
推荐指数
1
解决办法
5499
查看次数

每5秒自动刷新一次Updatepanel

我在webforms应用程序的主页面中有一个更新面板,现在我已将此更新面板设置为每5秒刷新一次,以反映更新的行项目数.有些事情就像新消息的数量.我的问题是:

  • 这是每5秒在我的页面上反映新行项目计数的正确方法
  • 通过不断刷新更新面板,这会以任何方式降低我的应用程序性能.

我的标签是ExecuteReader从我的代码隐藏查询中获取其值.

asp.net updatepanel webforms

5
推荐指数
1
解决办法
4400
查看次数

标签 统计

asp.net ×2

ajax ×1

updatepanel ×1

webforms ×1