2

问题:如何在asp .net 4.5中将参数传递给gridView的SelectMethod

描述 :

我正在使用 asp .net 4.5 并使用(强类型模型绑定)SelectMethod 将数据绑定到 gridView。

SelecteMethod="BindGrid" BindGrid 是用户定义的函数。

但是在绑定时,我想将 GridRow 作为参数传递给函数 BindGrid。

那么有没有办法将参数传递给 selectMethod 以进行强类型模型绑定?

4

3 回答 3

1

有一个很好的示例说明如何使用控件“过滤”从“SelectMethod”返回的数据。例如,如果您要更改下拉列表中选择的数据。你会像这样设置标记......

<form id="form1" runat="server">
    <div>
        <asp:DropDownList ID="ddlEmployee" AutoPostBack="true" runat="server">
                <asp:ListItem Text="1"></asp:ListItem>
                <asp:ListItem Text="2"></asp:ListItem>
        </asp:DropDownList>
    </div>
    <div>
        <asp:GridView ID="grdEmployee" runat="server" SelectMethod="GetEmployees" ItemType="WebApplication2.Employee">
        </asp:GridView>
    </div>
</form>

然后该方法看起来像这样接收参数......

public List<Employee> GetEmployees([Control]int? ddlEmployee)
    {
        List<Employee> employeeList = new List<Employee>();
        for (int i = 1; i <= 5; i++)
        {
            employeeList.Add(new Employee { 
                EmployeeId=i,
                FirstName=string.Format("First{0}",i),
                LastName=string.Format("Last{0}",i)
            });
        }
        return employeeList.Where(e=>e.EmployeeId==ddlEmployee).ToList();
    }

根据您的情况,可以有多种变化。希望这可以帮助!

于 2015-03-26T21:29:12.683 回答
1

传参一般有两种方式:

  • 声明式地从SelectParameters元素。
  • 以编程方式从Selecting方法中。

这里

我认为在您的情况下,您必须选择该Selecting方法。

于 2020-06-23T06:00:51.247 回答
0

MSDN > 任务 3 - 模型绑定中的值提供程序 > (5):https ://docs.microsoft.com/en-us/aspnet/web-forms/overview/getting-started/hands-on-labs/whats-new -in-web-forms-in-aspnet-45#task-3---value-providers-in-model-binding

public IQueryable<Category> GetCategories([Control("controlId")] int? minProductsCount)
{
    var query = this.db.Categories.Include(c => c.Products);

    if (minProductsCount.HasValue)
    {
        query = query.Where(c => c.Products.Count >= minProductsCount);
    }

    return query;
}
于 2021-03-19T15:09:40.067 回答