我一直试图在Telerik网格视图的列中添加一个下拉控件。 下面是代码片段。当我在下拉菜单中使用“查找控件”时,它返回null且未绑定数据。
ASP
<telerik:GridTemplateColumn AllowFiltering="False" ShowFilterIcon="False">
<HeaderStyle HorizontalAlign="Center" />
<HeaderTemplate>
Change Sort Order
</HeaderTemplate>
<ItemStyle HorizontalAlign="Center" Width="5%"/>
<ItemTemplate>
<asp:DropDownList ID="myDropDown" DataTextField="TextFieldValue" DataValueField="ValueFieldValue" runat="server"/>
</ItemTemplate>
</telerik:GridTemplateColumn>
C#代码
protected void gdvFMclevel1_ItemDataBound(object sender, GridItemEventArgs e)
{
GridItem item = (GridItem)e.Item;
DropDownList list=(DropDownList)item.FindControl("myDropDown");
Controller c = new Controller();
DataSet ds = new DataSet();
ds = c.GetSortList();
if (ds.Tables[0].Rows.Count > 0)
{
list.DataSource = ds.Tables[0];
list.DataTextField = "Order";
list.DataValueField = "SortOrder";
list.DataBind();
}
}
请让我知道如何获取下拉列表中的数据。我在此上遇到对象引用异常。
答案 0 :(得分:0)
将DataSourceID =“ dataSource”添加到下拉列表中。 在页面上声明一个ObjectDataSource(ODS)。将ODS链接到返回数据集的函数。 该功能应该是公开的。
public DataSet dataSource()
{
DataSet ds = new DataSet();
ds = c.GetSortList();
return ds;
}
<telerik:GridTemplateColumn AllowFiltering="False" ShowFilterIcon="False">
<HeaderStyle HorizontalAlign="Center" />
<HeaderTemplate>
Change Sort Order
</HeaderTemplate>
<ItemStyle HorizontalAlign="Center" Width="5%"/>
<ItemTemplate>
<asp:DropDownList ID="myDropDown" DataSourceID="odsDataSource"
DataTextField="Order"
DataValueField="SortOrder"
runat="server"/>
</ItemTemplate>
</telerik:GridTemplateColumn>
<asp:ObjectDataSource runat="server" ID="odsDataSource"
SelectMethod="dataSource"
TypeName="yournamespace.yourclassName"></asp:ObjectDataSource>