我试图第一次使用ObjectDataSource使用我的代码但是在其SelectMethod中我总是将Control作为null。
<asp:ObjectDataSource ID="objDataSourceStartAddress" runat="server" SelectMethod="GetSearchStartAddress" TypeName="TransElite.MainApplication.Booking" >
</asp:ObjectDataSource>
<telerik:RadSearchBox runat="server" ID="radtxtSearchStartAddress" EmptyMessage="Search Resolved Address" MinFilterLength="5" OnSearch="radtxtSearchStartAddress_Search" DataTextField="DisplayAddress" DataValueField="Id" DataSourceID="objDataSourceStartAddress" Width="85%">
</telerik:RadSearchBox>
public List<AddressData> GetSearchStartAddress()
{
// Assigning collection/list to StartSearchAddress
var StartSearchAddress = ClientDataProvider.AddressList(radtxtSearchStartAddress.Text);
return StartSearchAddress;
}
请建议如何在SelectMethod中使用该控件。
答案 0 :(得分:0)
http://demos.telerik.com/aspnet-ajax/searchbox/examples/declarativedatasources/defaultcs.aspx
在这里,您将使用声明性数据源控件的一些示例。 然而,Suche异常更可能源于对象而不是来自请求它们的控件。正如丹尼尔所说 - 调试是要走的路。这里没有人有您的自定义对象,类和应用程序。
答案 1 :(得分:0)
谢谢你的努力。但我想出了解决我的代码问题的代码。 得出的结论是,您无法使用SelectMethod中使用的方法进行控制。所以另一种方法是使用SelectParameters如下:
<asp:ObjectDataSource ID="objDataSourceStartAddress" runat="server" SelectMethod="GetSearchStartAddress" TypeName="TransElite.MainApplication.Booking">
<SelectParameters>
<asp:ControlParameter Name="startaddress" ControlID="radtxtSearchStartAddress" PropertyName="Text" DefaultValue="BLANKTEXT" />
</SelectParameters>
</asp:ObjectDataSource>
后面的代码将包含以下代码:
public List<AddressData> GetSearchStartAddress(string startaddress)
{
if (startaddress.Trim() == "BLANKTEXT")
return null;
var StartSearchAddress = ClientDataProvider.AddressListPanelCallback(startaddress);
return StartSearchAddress;
}