日期:2014-05-19  浏览次数:20421 次

datagrid中用到dropdownlist的问题
我的数据库中有一个名为ftype的类型,取值为1,2,3,4
我想在datagrid中用dropdownlist显示它们.
当ftype=1时,   显示tt
当ftype=2时,   显示ff
当ftype=3时,   显示mm
当ftype=4时,   显示kk
而且其它的选项,我点击下拉列表时还可以看到


------解决方案--------------------
up先

------解决方案--------------------
OnLoad= ' <%# (DataBinder.Eval(Container, "DataItem.ftype ")).ToString()%> ' 这个不用,可以更改 <asp:ListItem Value= "自拍 "> 自拍 </asp:ListItem>
但一般都是后台绑定的数据在ItemDataBound事件中。把每个单元格的DropDownList1绑定数据库的数据。

------解决方案--------------------
先在模板列中为DropDownList添加四个Item:tt,ff,mm,kk

private void DataGrid2_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType != ListItemType.Header && e.Item.ItemType!=ListItemType.Footer && e.Item.ItemType!=ListItemType.Pager)
{
DropDownList i=(DropDownList)e.Item.Cells[n].Controls[1];//n为DropDownList                                 //所在列
switch(ftype)
{
case 1:
i.SelectIndex=0;//选择tt
break;
case 2:
i.SelectIndex=1;//选择ff
break;
case 3:
i.SelectIndex=2;//选择mm
break;
case 4:
i.SelectIndex=3;//选择kk
break;


}


}

}
------解决方案--------------------
<asp:ListItem Value= "1 "> tt </asp:ListItem>
<asp:ListItem Value= "2 "> ff </asp:ListItem>
<asp:ListItem Value= "3 "> mm </asp:ListItem>
<asp:ListItem Value= "4 "> kk </asp:ListItem>

------解决方案--------------------
//参考一下
aspx
<asp:datagrid id= "dgrdTitles " runat= "server " AutoGenerateColumns= "False " DataKeyField= "title_id ">
<Columns>
<asp:BoundColumn DataField= "title_id " ReadOnly= "True " HeaderText= "title_id "> </asp:BoundColumn>
<asp:BoundColumn DataField= "title " HeaderText= "title "> </asp:BoundColumn>
<asp:TemplateColumn HeaderText= "type ">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem, "type ")%>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList id= "dropTemp " runat= "server "> </asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText= "price "> </asp:TemplateColumn>
<asp:EditCommandColumn ButtonType= "LinkButton " UpdateText= "更新 " CancelText= "取消 " EditText= "编辑 "> </asp:EditCommandColumn>
</Columns>
</asp:datagrid>