gpt4 book ai didi

C# ASP.NET 通过通用方法绑定(bind)控件

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

我维护了一些 Web 应用程序,我发现自己经常一遍又一遍地编写相同的代码块以将 GridView 绑定(bind)到数据源。我正在尝试创建一个通用方法来处理数据绑定(bind),但我无法让它与 Repeater 和 DataLists 一起使用。

这是我目前使用的通用方法:

public void BindControl<T>(T control, SqlCommand sql) where T : System.Web.UI.WebControls.BaseDataBoundControl
{
cmd = sql;
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
control.DataSource = dr;
control.DataBind();
}
dr.Close();
cn.Close();
}

这样我就可以定义我的 CommandText,然后调用“BindControls(myGridView, cmd)”,而不是每次我需要绑定(bind)网格时都重新键入相同的基本代码块。

问题是,这不适用于中继器或数据列表。这些控件中的每一个都从不同的类继承各自的“DataSource”和“DataBind”方法。另一个论坛上有人建议我实现一个接口(interface),但我也不确定如何让它工作。

GridView、Datalist 和 Repeater 从 BaseDataBoundControl、BaseDataList 和 Repeater 类中获取各自的“DataBind”方法。我将如何着手创建一个单一的界面来将它们联系在一起?还是我最好只为此方法使用 3 个重载?

  • 戴夫

最佳答案

我会尝试设置 DataSource 属性并使用反射运行 DataBind() 方法。并且不要将 T 类型绑定(bind)到特定类型。

关于C# ASP.NET 通过通用方法绑定(bind)控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2747518/

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