【问题标题】:Which control to design an asp.net page with sql?用sql设计一个asp.net页面用哪个控件?
【发布时间】:2009-11-06 19:59:18
【问题描述】:

我还有很多东西要学。目前我有存储过程,以及绑定到它们的gridview。它有效,但我想学习新的更好的做事方式。

我发现我应该使用 ROW_NUMBER() 来帮助使我的查询与我将要实现的分页网格视图中的内容相关联。

但是,查询数据库以获取基于过滤器(年龄、部分姓名、性别)的客户信息(姓名、电子邮件、电话)并将其显示在屏幕上的最佳、最酷、最简洁的方法是什么?

理想情况下,我希望它是超级用户友好的,具有排序和分页功能,并且我希望能够添加诸如“查看客户资料”或“给客户发送电子邮件”之类的按钮。

我不想花费 - 数年 - 开发每个页面......所以手工完成可能会失败。

是 gridview 的方式,还是有其他控件/方法?是否有关于如何正确执行此操作的指南?

我对 asp.net 还很陌生,但我已经到了那里。似乎一切都是一场艰苦的斗争。

【问题讨论】:

    标签: asp.net sql


    【解决方案1】:

    Gridview 似乎是最好的答案,事实上,为 CRUD 操作提供快速方法是它的主要优势之一。

    不用担心与 ASP.NET 的斗争...当我从 PHP 迁移到 ASP.NET 时,我花了很长时间才了解 Web 表单,而现在我将再次经历这一切使用 ASP.NET MVC...你最终会得到它。

    提示:研究“DataKeys” - 这实际上允许您设置 gridview 以根据您指定为数据源一部分的列来识别其行,如下所示:

    GridViewProducts.DataSource = t; // t is a datatable in this example.
    GridViewProducts.DataKeyNames = new string[] { "ProductID" };
    GridViewProducts.DataBind();
    

    对我来说,最简单的解释是,gridview 正在生成另一列(不可见),但存储每一行​​的 ProductID,就像“Product”表有一个“ProductID”列(它是同一列你会使用)。

    最终,当您对一行执行 UPDATE/DELETE 时,您会想知道 ProductID 是什么,要获得它,您只需在 Gridviews RowUpdating 和 RowDeleting 处理程序中使用以下代码:

        protected void GridviewProducts_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
    string ProductID= GridviewProduct.DataKeys[e.RowIndex].Value.ToString();
    // do update and pass through ProductID as a parameter.
    }
    

    【讨论】:

    • 感谢您更新您的答案。昨天我偶然发现了 datakeys,尽管在你发布之前我并没有完全理解它们的功能。谢谢!
    【解决方案2】:

    最快的方法,你也可以看看ADO.NET Entity Framework。另请查看these videos,了解您可以轻松实现过滤。

    【讨论】:

      【解决方案3】:

      您可以查看jqGrid 之类的内容,后端有一个网络服务来提供数据。它与 MVC 配合得非常好 - Phil Haacks 博客有一些很好的示例。

      【讨论】:

        【解决方案4】:

        我建议您查看来自 MVC 贡献者的 Here。他们做了很多很酷的东西,可以添加到 MVC .Net 应用程序中,包括分页和排序

        至于与源网格的数据库连接,请考虑使用 Fluent nHibernate 的 nHibernate(如果您是 lambdas 人)。为您提供强类型的 sql 生成,在 VS 中使用智能感知...

        【讨论】:

          猜你喜欢
          • 2017-12-12
          • 1970-01-01
          • 1970-01-01
          • 2015-09-09
          • 2011-01-09
          • 2012-11-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多