<
asp:TemplateColumn
HeaderText
="行业"
>
< ItemTemplate >
< asp:Label id =Label1 runat ="server" Text ='<%# DataBinder.Eval(Container.DataItem,"CateGory.Name", "{0}") % > '>
</ asp:Label >
</ ItemTemplate >
< EditItemTemplate >
< asp:DropDownList id =drpColCategory runat ="server" SelectedValue ='<%# DataBinder.Eval(Container.DataItem,"CateGory.ID", "{0}") % > ' DataSource=" <% # TopCategory %> " DataValueField="ID" DataTextField="Name">
</ asp:DropDownList >
</ EditItemTemplate >
</ asp:TemplateColumn >
< ItemTemplate >
< asp:Label id =Label1 runat ="server" Text ='<%# DataBinder.Eval(Container.DataItem,"CateGory.Name", "{0}") % > '>
</ asp:Label >
</ ItemTemplate >
< EditItemTemplate >
< asp:DropDownList id =drpColCategory runat ="server" SelectedValue ='<%# DataBinder.Eval(Container.DataItem,"CateGory.ID", "{0}") % > ' DataSource=" <% # TopCategory %> " DataValueField="ID" DataTextField="Name">
</ asp:DropDownList >
</ EditItemTemplate >
</ asp:TemplateColumn >
不过在无谓的问题查找当中,发现了一个奇怪的情况。aspx文件中如些定义
<
EditItemTemplate
>
< asp:DropDownList id ="drpColCategory" runat ="server" ></ asp:DropDownList >
</ EditItemTemplate >
< asp:DropDownList id ="drpColCategory" runat ="server" ></ asp:DropDownList >
</ EditItemTemplate >
并意图在ItemCreate事件中为DropDownList绑定数据及指定SelectedValue,SelectedValue似乎总被忽略掉,她始终选择第一项。相关代码如下
private
void
DataGrid1_ItemCreated(
object
sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
Control ctl = e.Item.FindControl("drpColCategory");
if(ctl==null)
return;
if(e.Item.DataItem==null)//提交表格
return;
Entity.Advertisement ad = (Entity.Advertisement)e.Item.DataItem;
this.listCategory((DropDownList)ctl,ad.CateGory.ID);
}
{
Control ctl = e.Item.FindControl("drpColCategory");
if(ctl==null)
return;
if(e.Item.DataItem==null)//提交表格
return;
Entity.Advertisement ad = (Entity.Advertisement)e.Item.DataItem;
this.listCategory((DropDownList)ctl,ad.CateGory.ID);
}
private
void
listCategory(DropDownList pDropControl,
int
pCateID)
{
Entity.Locator.CategoryLocator catLoc = new Mag.Entity.Locator.CategoryLocator(this.DbConnect);
IList list = catLoc.SelectTops();
pDropControl.DataSource = list;
pDropControl.DataTextField = "Name";
pDropControl.DataValueField = "ID";
if(pCateID>-1)
pDropControl.SelectedValue = pCateID.ToString();
pDropControl.DataBind();
}
{
Entity.Locator.CategoryLocator catLoc = new Mag.Entity.Locator.CategoryLocator(this.DbConnect);
IList list = catLoc.SelectTops();
pDropControl.DataSource = list;
pDropControl.DataTextField = "Name";
pDropControl.DataValueField = "ID";
if(pCateID>-1)
pDropControl.SelectedValue = pCateID.ToString();
pDropControl.DataBind();
}