两个 DropDownList 绑定一个数据源 设置每个控件的选择值

影子_爱人 2009-12-14 07:31:33
我设置 两个的选择项不相同 可是 它还是选择的相同 为什么 ? 怎么解决
...全文
391 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianke3477 2011-03-16
  • 打赏
  • 举报
回复
悲剧,遇到同样的问题了
flyerwing 2009-12-15
  • 打赏
  • 举报
回复
ispostback
影子_爱人 2009-12-15
  • 打赏
  • 举报
回复
ViewState["selectStartMonth"] ,ViewState["selectEndMonth"] 有可能 为空的情况 并且这二个值是不相等的 可是 两个下拉框 选择的 还是 同一个值 调试 过

ddlendMonth.SelectedIndex = ViewState["selectEndMonth"] == null ? DateTime.Now.Month - 1 : int.Parse(ViewState["selectEndMonth"].ToString()) - 1;

放在后面 就是 以这个值为 准

ddlstartlMonth.SelectedIndex = ViewState["selectStartMonth"] == null ? DateTime.Now.Month - 1 : int.Parse(ViewState["selectStartMonth"].ToString()) - 1;

放在后面 就是 以这个值 为 准

也就是说 把那个值放在 后面 就以那个值为准
cx419075909 2009-12-15
  • 打赏
  • 举报
回复
你的都绑的一个数据源?
yedaoq 2009-12-15
  • 打赏
  • 举报
回复
如果在一个窗体中直接将两个控件的数据源设置为对象列表的话,那么这两个控件将共用一个CurrentManager,因此,无论在哪一个ComboBox中进行选择,都会影响到另一个控件.
你可以尝试使用两个BindindSource指向对象列表,然后将两个控件绑定到不同的BindingSource
liu2835993 2009-12-15
  • 打赏
  • 举报
回复
纠结的代码啊...

有没有调试一下

ddlstartlMonth.SelectedIndex = ViewState["selectStartMonth"] == null ? DateTime.Now.Month - 1 : int.Parse(ViewState["selectStartMonth"].ToString()) - 1;

ddlendMonth.SelectedIndex = ViewState["selectEndMonth"] == null ? DateTime.Now.Month - 1 : int.Parse(ViewState["selectEndMonth"].ToString()) - 1;

首先根据你的代码ViewState["selectStartMonth"] ,ViewState["selectEndMonth"]不可能为空吧?

其次ViewState["selectStartMonth"] ,ViewState["selectEndMonth"]这两个值是不是相等啊?

影子_爱人 2009-12-15
  • 打赏
  • 举报
回复
有人 帮忙解答吗 我那个是保存有数据的 月份
影子_爱人 2009-12-15
  • 打赏
  • 举报
回复
求高手 帮忙啊
影子_爱人 2009-12-15
  • 打赏
  • 举报
回复
ViewState["selectStartMonth"] ,ViewState["selectEndMonth"] 都是有值的 并且 并不相等
chengwen2402163 2009-12-15
  • 打赏
  • 举报
回复
应该是两个索引相等了,,没看到你的ViewState["selectEndMonth"] 是为空吗?
影子_爱人 2009-12-15
  • 打赏
  • 举报
回复
求 高手帮忙解决啊
mngzilin 2009-12-14
  • 打赏
  • 举报
回复
为什么要放到循环里面
影子_爱人 2009-12-14
  • 打赏
  • 举报
回复
ViewState["selectStartMonth"] = i; 表示第一次加载 就保存这个值
mngzilin 2009-12-14
  • 打赏
  • 举报
回复
if (i.ToString() == dt.Rows[j][0].ToString())
{
item.Attributes.Add("style", "color:blue");
if (!IsPostBack)
{
ViewState["selectStartMonth"] = i;
}
}
解释一下红色这句
影子_爱人 2009-12-14
  • 打赏
  • 举报
回复
分别是 第一个 的值 和第二个的值 DataTable dt 返回的是 一个 数据库有的 月份
mngzilin 2009-12-14
  • 打赏
  • 举报
回复
ViewState["selectStartMonth"]

ViewState["selectEndMonth"]

这两个分别保存了什么?

DataTable dt 返回的是什么?
影子_爱人 2009-12-14
  • 打赏
  • 举报
回复
ViewState["selectStartMonth"] 和
ViewState["selectEndMonth"]
在查询事件中 会重新赋值的
影子_爱人 2009-12-14
  • 打赏
  • 举报
回复
#region 绑定月份方法

/// <summary>
/// 绑定月份
/// </summary>
private void DataMonthBind()
{
ddlstartlMonth.Items.Clear();
ddlendMonth.Items.Clear();
DataTable dt = dal.GetStakeoutMonth(ddlstartYear.SelectedValue);
for (int i = 1; i <= 12; i++)
{
if (dt.Rows.Count > 0)
{
ListItem item = new ListItem(i.ToString() + "月", i.ToString());
item.Attributes.Add("style", "color:#808080");
for (int j = 0; j < dt.Rows.Count; j++)
{
if (i.ToString() == dt.Rows[j][0].ToString())
{
item.Attributes.Add("style", "color:blue");
if (!IsPostBack)
{
ViewState["selectStartMonth"] = i;
}
}
}
ddlstartlMonth.Items.Add(item);
ddlendMonth.Items.Add(item);
}
else
{
ListItem item = new ListItem(i.ToString() + "月", i.ToString());
ddlstartlMonth.Items.Add(item);
ddlendMonth.Items.Add(item);
}
}
ddlstartlMonth.SelectedIndex = ViewState["selectStartMonth"] == null ? DateTime.Now.Month - 1 : int.Parse(ViewState["selectStartMonth"].ToString()) - 1;
ddlendMonth.SelectedIndex = ViewState["selectEndMonth"] == null ? DateTime.Now.Month - 1 : int.Parse(ViewState["selectEndMonth"].ToString()) - 1;
}

#endregion
mngzilin 2009-12-14
  • 打赏
  • 举报
回复
代码贴出来。
crazydoglzc 2009-12-14
  • 打赏
  • 举报
回复
你是说改变一个另一个也改变了吗?
加载更多回复(2)

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧