DataGrid的模板列如何绑定DropDownList

liuchunhuith 2009-07-29 10:24:45
帮看下,有问题吗,一打开dropDownList的选项就是空白的,而同行的,其它列已正确显示数据。

<asp:TemplateColumn HeaderStyle-HorizontalAlign="Center" HeaderText="交费方式">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemTemplate>
<asp:DropDownList ID="manner" Width="80" DataTextField="mannerName" DataValueField="mannerID" Runat="server"></asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>

private void dgMain_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e )
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
DropDownList mannerDLst=(DropDownList)dgMain.Items[6].FindControl("manner");
string SQLmanner;
SqlConnection htrlConn=classes.Base.getConn(Session["year"].ToString());
SQLmanner="select mannerID,mannerName from TB_Manner where mannerID in(3,4,6)";
SqlDataAdapter mannerCommand=new SqlDataAdapter(SQLmanner,htrlConn);
DataSet DS=new DataSet();
mannerCommand.Fill(DS);
mannerDLst.DataSource=DS.Tables[0].DefaultView;
mannerDLst.DataTextField="mannerName";
mannerDLst.DataValueField="mannerID";
mannerDLst.DataBind();
htrlConn.Close();
}

}

...全文
93 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jasondct 2009-07-29
  • 打赏
  • 举报
回复
来晚了 哪就祝贺你得到提高
ch219888 2009-07-29
  • 打赏
  • 举报
回复
呵呵 问题解决了就好了
cpp2017 2009-07-29
  • 打赏
  • 举报
回复
没有这个事件他也会显示的
ch219888 2009-07-29
  • 打赏
  • 举报
回复
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
改成试试
if (e.Row.RowType == DataControlRowType.DataRow)
liuchunhuith 2009-07-29
  • 打赏
  • 举报
回复
是其它列,不是其它“死”,错别字,谢谢你的热心 
liuchunhuith 2009-07-29
  • 打赏
  • 举报
回复
原因找到了,粗心,this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound); 这个是另外的一个,本datagrid 居然没写这行。但有一点,为什么我的其它死可以正常显示呢,我没有相关的上面那行语句啊。
cpp2017 2009-07-29
  • 打赏
  • 举报
回复
理论上可以的,你设个断点,然后按F5看看
liuchunhuith 2009-07-29
  • 打赏
  • 举报
回复
怎么跟踪?没做过。
liuchunhuith 2009-07-29
  • 打赏
  • 举报
回复
我还尝试故意错误的方法:DropDownList mannerDLst=(DropDownList)dgMain.Items[6].FindControl("manner"); 中的"manner"改为别的,居然没作过任何错误提示。
liuchunhuith 2009-07-29
  • 打赏
  • 举报
回复
this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
有这行还不够吗,
datagrid 有多列,其它死能正常显示,我实在是搞不懂了

cpp2017 2009-07-29
  • 打赏
  • 举报
回复
不是说有数据显示就执行了,要跟踪一下有没有进入这个事件.
liuchunhuith 2009-07-29
  • 打赏
  • 举报
回复
有执行,本行的其它列有数据能正常显示。
cpp2017 2009-07-29
  • 打赏
  • 举报
回复
dgMain_ItemDataBound有没有执行?
liuchunhuith 2009-07-29
  • 打赏
  • 举报
回复
我在本页面空白处放了个dropdonwlist,把绑定代码复制过去能正常显示数据。就是放到DATAgrid里不行。
cpp2017 2009-07-29
  • 打赏
  • 举报
回复
查询到数据了么?
lghndyz 2009-07-29
  • 打赏
  • 举报
回复
帮顶!!
liuchunhuith 2009-07-29
  • 打赏
  • 举报
回复
上面代码,有一行改动为:DropDownList mannerDLst=(DropDownList)e.Item.FindControl("manner");也没成功。

62,243

社区成员

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

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

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

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