求助!droplistdown绑定数据后显示不了啊

jazzking746 2007-02-14 05:51:27
代码如下
1
前台页面 有个用户控件:
开发商</td>
<td>
<uc3:ProductCompany ID="ProductCompany1" runat="server" />
</td>
2
用户控件代码如下
protected void Page_PreRender(object sender, EventArgs e)
{
if (!IsPostBack)
{
DBind();
}
}

private void DBind()
{
ddlCompanys.DataSource = new CCNEC.CMS.BLL.Company().GetAllCompanys();
ddlCompanys.DataTextField = "Name";
ddlCompanys.DataValueField = "ID";
ddlCompanys.DataBind();
//ddlCompanys.Items.Insert(0,new ListItem("无所属厂商", "0"));
}

public int Company
{
get { return int.Parse(ddlCompanys.SelectedValue); }
set {
DBind();
if (ddlCompanys.SelectedValue != "")
ddlCompanys.Items.FindByValue(ddlCompanys.SelectedValue).Selected = false;

ListItem selectedItem = ddlCompanys.Items.FindByValue(value.ToString());
if (selectedItem != null)
selectedItem.Selected = true;
}
}
3调用代码Page_Load。。。。。。
ProductCompany1.Company = product.Developer;

btnSave_Click。。。。。。
product.Developer = ProductCompany1.Company;

这个就是问题了 保存数据没有问题,之后再用这个页面读取更改的时候
显示不了数据库数据之前ddlCompanys.Items.Insert(0,new ListItem("无所属厂商", "0"));没有注释的时候,每次读取这个修改页面的时候都被insert了无所属厂商,而不是读取数据库的字段数据,之后把它注释后,又
只读取数据库默认字段,而不是产品id字段。看的我眼花,希望其他人清醒的帮我指明一下啊,谢谢,急用啊!!马上要提交了,就这个问题捆饶我,谢谢大家了,春节快乐,男生变帅,女生可爱!
...全文
822 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
qijund 2008-08-07
  • 打赏
  • 举报
回复
为什么是Page_PreRender而不是Page_Load?
jazzking746 2007-02-25
  • 打赏
  • 举报
回复
谢谢大家,问题已经解决马上结帖,下面为后来的代码,去掉了一个DBind()使用了
ViewState存值。这是目前的解决方案 也希望有朋友可以提供更好的方案谢谢~
前台代码不用改了完整代码见我blog文章:http://www.cnblogs.com/jazzking/archive/2007/02/25/655706.html

...................................................
.................................................
protected void Page_PreRender(object sender, EventArgs e)
{
if (!IsPostBack)
{
DBind();
}
}
private void DBind()
{
ddlCompanys.DataSource = new CCNEC.CMS.BLL.Company().GetAllCompanys();
ddlCompanys.DataTextField = "Name";
ddlCompanys.DataValueField = "ID";
ddlCompanys.DataBind();

ddlCompanys.Items.Insert(0, new ListItem("无所属厂商", "0"));

if (ddlCompanys.SelectedValue != "")
ddlCompanys.Items.FindByValue(ddlCompanys.SelectedValue).Selected = false;
if (ViewState["Company"] != null)
{
ListItem selectedItem = ddlCompanys.Items.FindByValue(ViewState["Company"].ToString());
if (selectedItem != null)
selectedItem.Selected = true;
}
}

public int Company
{
get { return int.Parse(ddlCompanys.SelectedValue); }
set
{ ViewState["Company"] = value.ToString(); }
}
jxf654 2007-02-20
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
举个例子能够说的更清楚,例如设计TextBox控件,在回发时恢复所有值,包括Text。但是如果这时候执行跟 onTextChanged 同样的逻辑就过分了。
  • 打赏
  • 举报
回复
Page_Load与设置ProductCompany1.Company根本无关,page_load的逻辑意义并不是重新设置Company,而是让底层的控件恢复上次页面输出的状态,后者比前者需要执行的动作少很多东西。
sep229 2007-02-17
  • 打赏
  • 举报
回复
去掉if (!IsPostBack)就可以了,
因为用户控件存在于页面中,母页已经加载了,所以用户控件再使用if (!IsPostBack)
就会跳过.
sbkopoky 2007-02-17
  • 打赏
  • 举报
回复
有一个香港和悦网络电话的源代码
xie_yanke 2007-02-15
  • 打赏
  • 举报
回复
写个数组,代替数据源, 如果正常,说明你的数据源代码有问题.

xuxiaofei82 2007-02-15
  • 打赏
  • 举报
回复
我也不知道,顺便学习
viva369 2007-02-15
  • 打赏
  • 举报
回复
是不是if (!IsPostBack)的问题
不过你说的蛮乱的,估计已经神志不清了。。^_^
godspell 2007-02-15
  • 打赏
  • 举报
回复
if (!IsPostBack)
{
DBind();
}

去掉IsPostBack试试,改成
DBind();
sthntxn 2007-02-15
  • 打赏
  • 举报
回复
说的有点乱,F5跟踪看看吧
jazzking746 2007-02-15
  • 打赏
  • 举报
回复
谢谢大家 希望能早点解决~~
郁闷啊
jxf654 2007-02-15
  • 打赏
  • 举报
回复
up
Terry001 2007-02-15
  • 打赏
  • 举报
回复
断点调试下,跟踪看看

绑定下拉列表框是很简单的事情
gzlyp 2007-02-15
  • 打赏
  • 举报
回复
这种问题,调试跟踪一下,看一下有没有取出数据、、、、
iceflylee 2007-02-15
  • 打赏
  • 举报
回复
jf
xiaotupansy 2007-02-15
  • 打赏
  • 举报
回复
ddlCompanys.DataSource = new CCNEC.CMS.BLL.Company().GetAllCompanys();

这句应该有问题吧,你new什么呢?方法?
改成下面试试
ddlCompanys.DataSource = (new CCNEC.CMS.BLL.Company()).GetAllCompanys();
Karl_He 2007-02-15
  • 打赏
  • 举报
回复
更改2个地方,试试

位置1:
if (!IsPostBack)
{
DBind();
}
变为
DBind();
位置2:
private void DBind()
{
ddlCompanys.Items.Clear(); //添加这句
ddlCompanys.DataSource = new CCNEC.CMS.BLL.Company().GetAllCompanys();
ddlCompanys.DataTextField = "Name";
ddlCompanys.DataValueField = "ID";
ddlCompanys.DataBind();
}
hanchi8008 2007-02-15
  • 打赏
  • 举报
回复
问题所在: 调用databind顺序的问题。解决了给分吧!!!过年快乐。
加载更多回复(6)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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