【发布时间】:2012-11-16 20:22:52
【问题描述】:
我正在开发一个指标屏幕,该屏幕将根据数据库中的不同组显示多个图表。它的一部分使用隐藏选定图表的功能,直到用户单击以显示它们。
问题是这样的:我在下拉列表中使用了 Databind,所以每次我选择一个新组时,页面都会刷新,并且所有内容都会返回到默认状态。
我的问题是:有没有一种方法可以避免每次从下拉列表中选择新选项时刷新页面?如果是这样,怎么做?如果没有,是否有更好的方法来创建下拉列表并为其附加值?如果我将AppendDataBoundItems 设置为false,那么我总是将选定的值作为列表中的第一项。
这是我的下拉列表代码:
<asp:DropDownList ID="MinistryDropdown" OnSelectedIndexChanged="Selection_Change" AutoPostback="true" AppendDataBoundItems="true" runat="server"/>
那么后面的C#代码是这样的:
public void Page_Load(object sender, EventArgs e){
MinistryDropdown.DataSource = CreateDataSource();
MinistryDropdown.DataTextField = "Description";
MinistryDropdown.DataValueField = "Description";
MinistryDropdown.DataBind();
...other code here...
}
ICollection CreateDataSource(){
DataTable Ministries = new DataTable();
Ministries = oDatabase.GetData(@"SELECT DISTINCT B.Description
FROM tblInvolvement AS A LEFT JOIN tblMinistries AS B
ON A.Activity = B.MinistryID");
DataView dv = new DataView(Ministries);
return dv;
}
【问题讨论】:
-
如果您担心页面刷新,请使用ajax。
-
我试试看,谢谢。
-
我可能有点离题,但问题是你没有
if (!IsPostBack)吗?听起来您是在说一切都在刷新,而您不希望它如此,对吧? -
没错。但是,如果我使用它,所有其余图表都会消失。
标签: c# asp.net data-binding