gpt4 book ai didi

c# - 如何使用 Telerik Rad 网格绑定(bind)将数据传递给 Ajax 服务?

转载 作者:行者123 更新时间:2023-11-30 18:03:15 31 4
gpt4 key购买 nike

我有一个 Telerik RadGrid,我在其中实现自定义分页绑定(bind)到 Ajax 服务。如何将搜索字符串等数据传递给 Web 方法?

标记看起来像这样:

 <telerik:RadGrid ID="radGridProviders" runat="server" AllowPaging="True" PageSize="10" AutoGenerateColumns="false" >
<PagerStyle Mode="NextPrevAndNumeric" />
<MasterTableView TableLayout="Fixed" >
<Columns>
...
</Columns>
</MasterTableView>
<ClientSettings>
<Scrolling AllowScroll="True" EnableVirtualScrollPaging="True" UseStaticHeaders="True">
</Scrolling>
<DataBinding Location="/AjaxServices/SearchService" SelectMethod="GetProductData" SelectCountMethod="GetProductCount" StartRowIndexParameterName="startRowIndex" MaximumRowsParameterName="maxRows" />
<ClientEvents OnCommand="showLoadingPanel" OnDataBound="hideLoadingPanel" />
</ClientSettings>
</telerik:RadGrid>

我想向我的服务传递一个搜索字符串和/或其他客户参数我如何使用 RadGrid 绑定(bind)来实现?

我响应请求的服务是一个 ASP.NET MVC Controller 。该服务可以很好地响应来自浏览器的请求。我的问题是我不知道如何使用 Telerik 绑定(bind)功能传递自定义数据。

public class SearchServiceController : Controller
{
private ISearchController _searchController;

public SearchServiceController(ISearchController searchController)
{
_searchController = searchController;
}

public int GetProductCount()
{
int returnValue = 0;

// brevity brevity

return returnValue ;
}

public List<SearchProviders_Result> GetProductData(int startRowIndex, int maxRows)
{

// brevity brevity

}
}

有什么建议吗?

最佳答案

这是我在 Telerik Support 的帮助下发现的。

在 RadGrid 的 ClientSetting 中添加一个方法到 ClientEvents OnDataBinding。本例中我的name方法名是OnClientDataBinding

然后创建客户端方法:

            // This OnClient DataBinding builds the arguments uses to call the 
// Ajax Service used to retrieve that when needed.
function OnClientDataBinding(sender, args) {

// get data source location, method name and arguments
var dataSourceLocation = args.get_location();
var selectMethodName = args.get_methodName();
var methodArguments = args.get_methodArguments();

...

我实际上修改了 sortExpression 和 fitlerExpresion,它们作为数组传递。

        // construct arguments for Ajax Service
var myMethodArguments = new Object();
myMethodArguments.startRowIndex = methodArguments.startRowIndex;
myMethodArguments.maximumRows = methodArguments.maximumRows;
myMethodArguments.sortExpression = sortExpression;
myMethodArguments.filterExpression = filterExpression;
myMethodArguments.myParam1 = "David";
myMethodArguments.myParam2 = 14926;

args.set_methodArguments(myMethodArguments);
}

然后像这样创建你的服务 Controller 方法:

public JsonResult GetCustomerSearchResults(int startRowIndex, int maximumRows, string sortExpression, FilterExpression[] filterExpression, string myParam1, int myParam2)
{
IEnumerable results;

... fill your Data and Count.

return Json(new { Data = results.ToList(), Count = totalNumberOfRows });
}

FilterExpression[] 是我创建供我使用的对象。这不是 Telerik 对象。

关于c# - 如何使用 Telerik Rad 网格绑定(bind)将数据传递给 Ajax 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7422359/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com