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

时间:2013-04-03 05:14:04

标签: parameters asp.net-4.5

问题:如何在asp.net。

中将参数传递给gridView的SelectMethod

描述:

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

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

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

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

3 个答案:

答案 0 :(得分:0)

great example如何使用控制来过滤"过滤"从" 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();
    }

根据您的具体情况,这种情况有所不同。希望这有帮助!

答案 1 :(得分:0)

通常有两种方法可以传递参数:

  • SelectParameters元素中声明。
  • 通过Selecting方法以编程方式进行。

请参见here

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

答案 2 :(得分: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;
}