我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何进行ASP.NET Web开发框架中的查询

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何进行ASP.NET Web开发框架中的查询

本篇文章为大家展示了如何进行ASP.NET Web开发框架中的查询,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Enterprise Solution 支持用户自定义查询(query and lookup),并把查询query定义为一个标准功能,查找lookup用于返回查询的值给数据输入窗体。

先配置数据库连接字符串,使用公司注册来注册一个新的数据库连接。再到查询设计器中,选取相应的对象,设计关联,Web框架可以解析此查询,变成一个页面功能。

在客户页面中,添加TriggerBox,它的后面会显示一个小图标,以查于查找数据

 <ext:TriggerBox ID="tbxCustomerNo" ShowLabel="true" Readonly="false" TriggerIcon="Search"                             OnTriggerClick="tbxCustomerNo_TriggerClick" OnTextChanged="tbxCustomerNo_TextChanged"                             AutoPostBack="true" Label="Customer No." runat="server" Lookup="CustomerEntryLookup"                             DataBindingString="CustomerEntity:CustomerNo">  </ext:TriggerBox>

再来看后台代码的处理模式

string lookup = tbxCustomerNo.Lookup;               tbxCustomerNo.OnClientTriggerClick = Window1.GetSaveStateReference(tbxCustomerNo.ClientID, HiddenField1.ClientID, HiddenField2.ClientID)                 + Window1.GetShowReference(string.Format("lookup.aspx?id={0}", lookup), "Look-up:Customer");

从上面的Web页面中,我们已经指定了Lookup属性为CustomerEntryLookup。这一句是把Lookup与页面的Window1关联,以用于弹出窗口,同时指定了页面的HiddenField1为接受Lookup的返回值,***调用窗口的回发刷新过程,进行页面刷新,代码如下

protected void Window1_Close(object sender, EventArgs e)  {              string customerNo = tbxCustomerNo.Text;              if (!string.IsNullOrWhiteSpace(customerNo))              {                  ReloadEntity(customerNo);                          }  }

这样就完成了查询页面的弹出选择值,返回值给主窗体,***刷新主窗体。

再来看看lookup.aspx页面是如何设计的,它接受一个查询id为参数,这个参数,也就是我们指定的CustomerEntryLookup,在查询设计器中,它是这样被设计的

如何进行ASP.NET Web开发框架中的查询

lookup.aspx页面接受传入的参数,它的初试化页面是这样设计的

protected void Page_Init(object sender, EventArgs e)  {              LookupName = Request.QueryString["id"];                         ILookupDialogManager _lookupDialogManager = ClientProxyFactory.CreateProxyInstance<ILookupDialogManager>();              string companycode = "TS";              DataTable table = _lookupDialogManager.GetLookupDialogData(LookupName, null, null, 0, 0, companycode);              Grid1.RecordCount = table.Rows.Count;                 BindGrid();               }

根据查询,得到记录总数,进行分页查询,这里的代码是Grid的分页代码,来看看BindGrid方法的定义,并不复杂。

private void BindGrid()  {              DataSet ds = LoadData(Grid1.PageIndex+1);               while (Grid1.Columns.Count > 0)                  Grid1.Columns.RemoveAt(0);               foreach (DataColumn colu in ds.Tables[0].Columns)              {                  ExtAspNet.BoundField field = new ExtAspNet.BoundField();                  field.ColumnID = colu.ColumnName;                  field.DataField = colu.ColumnName;                  field.HeaderText = GetTranslation(colu.ColumnName);                  Grid1.Columns.Add(field);              }               Grid1.PageSize = PageSize;                          Grid1.DataSource = ds.Tables[0];              Grid1.DataBind();   }

它先删除grid中原有的列,然后根据结果产生新的列,并对列名应用多语言翻译。这里要注意动态控件的创建时机,要选择在Page_Init中,而不是Page_Load中。在Debug时,看到的分页代码是数据库分页,每次只返回设定的行数。

Grid的分页事件样例代码如下所示,与GridView完全一样

protected void Grid1_PageIndexChange(object sender, ExtAspNet.GridPageEventArgs e)  {           Grid1.PageIndex = e.NewPageIndex;           BindGrid();  }

下面来看看lookup.aspx页面的二个按钮方法的代码。最简单的是Close,直接关闭窗体,不返回任何值给主窗体,它的代码最容易,如下所示

btnClose.OnClientClick = ActiveWindow.GetHideReference();

复杂一点的,关闭后带值到主窗体中,代码如下所示

protected void btnSaveClose_Click(object sender, EventArgs e)  {              int rowIndex = Grid1.SelectedRowIndex;              GridRow row = Grid1.Rows[rowIndex];               ILookupDialogManager lookupManager=ClientProxyFactory.CreateProxyInstance<ILookupDialogManager>();              LookupDialogEntity lookup = lookupManager.GetLookupDialog(LookupName);              List<string> keyFields = new List<string>();                      keyFields.Add(lookup.KeyField1);              keyFields.Add(lookup.KeyField2);              keyFields.Add(lookup.KeyField3);               List<string> values = new List<string>();              foreach (string keyField in keyFields)              {                  string value = string.Empty;                  if (!string.IsNullOrWhiteSpace(keyField))                  {                      ExtAspNet.BoundField field = (ExtAspNet.BoundField)Grid1.FindColumn(keyField);                      string f1 = field.DataField;                      object f2 = Grid1.Rows[rowIndex].States[field.ColumnIndex];                      value = Convert.ToString(((DataRowView)(Grid1.Rows[rowIndex].DataItem))[keyField]);                                }                  values.Add(value);              }              PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(values[0], values[1], values[2]) + ActiveWindow.GetHidePostBackReference());   }

这部分代码,有两个意图,取Grid中的值,然后返回给主窗体,因为要刷新主窗体,所以***加一项GetHidePostBackReference(),让主窗体回发,以调用在文章开头设计的Window1_Close,ReloadEntity完成对实体的重新绑定。

查询query与查找lookup的实现原理是一样的,都用于自定义的查找数据。query用于相对独立的功能,是可执行的,lookup则用于字段值的查找与返回,方便窗体数据输入。查询设计器中,不仅仅用对象设计查询,也可以直接输入SQL语句,或是调用存储过程来实现。

如何进行ASP.NET Web开发框架中的查询

这样很方便于用户扩充系统查询功能,而不需要二次开发。

上述内容就是如何进行ASP.NET Web开发框架中的查询,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何进行ASP.NET Web开发框架中的查询

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何进行ASP.NET Web开发框架中的查询

本篇文章为大家展示了如何进行ASP.NET Web开发框架中的查询,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Enterprise Solution 支持用户自定义查询(query and loo
2023-06-17

如何理解ASP.NET Web开发框架项目

本篇文章为大家展示了如何理解ASP.NET Web开发框架项目,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。项目名称:Enterprise Solution技术参数1 C# ASP.NET Web
2023-06-17

ASP.NET Web开发中如何进行数据输入窗体

这期内容当中小编将会给大家带来有关ASP.NET Web开发中如何进行数据输入窗体,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Web框架要达到快速开发,又便于维护,进行了一系列的努力。请看最初始的ASP
2023-06-17

django框架如何集成celery进行开发

上一篇已经介绍了celery的基本知识,本篇以一个小项目为例,详细说明django框架如何集成celery进行开发。 本系列文章的开发环境:window 7 + python2.7 + pycharm5 + celery3.1.25 + d
2022-06-04

在C++中使用哪些库或框架进行Web开发?

c++++ 中的 web 开发涉及使用库和框架,如 boost.asio、libcurl、poco、cppcms、drogon 和 serval。这些库提供网络功能、协议支持和模块化 web 服务器框架,simplify web 应用程序开
在C++中使用哪些库或框架进行Web开发?
2024-05-12

如何进行基于Python+Django+Jquery架构的Web开发

这期内容当中小编将会给大家带来有关如何进行基于Python+Django+Jquery架构的Web开发,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 近来,公司要开发一个自动化运维平台,使用到基于P
2023-06-02

Vue如何结合Element UI等UI框架进行开发?

Vue结合ElementUI开发指南,提供预构建组件,响应式设计和主题化功能,简化前端开发。使用方法包括安装ElementUI、注册和使用组件。优势包括响应式设计、可扩展性和社区支持。最佳实践包括遵循组件化原则、使用响应式设计、熟悉文档和寻求社区支持。Vue和ElementUI的集成已用于开发仪表板、电子商务网站和社交媒体应用程序等各种应用程序。
Vue如何结合Element UI等UI框架进行开发?
2024-04-02

PHP开发中如何使用Memcache进行数据缓存和查询?

PHP开发中如何使用Memcache进行数据缓存和查询?引言:在开发Web应用程序时,数据的访问和查询是非常常见的需求。然而,频繁的数据库查询操作会消耗系统资源并且导致应用程序响应速度变慢,影响用户体验。为了优化性能,我们可以使用Memca
PHP开发中如何使用Memcache进行数据缓存和查询?
2023-11-07

如何进行Java和Python的Web开发分析

今天就跟大家聊聊有关如何进行Java和Python的Web开发分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在Java里面有一种服务端的软件组件技术,叫做Servlet,其实它的
2023-06-04

PHP开发中如何使用Memcache进行高效的数据写入和查询?

PHP开发中如何使用Memcache进行高效的数据写入和查询?随着互联网应用的不断发展,对于系统性能的要求越来越高。在PHP开发中,为了提高系统的性能和响应速度,我们经常会使用各种缓存技术。而其中一个常用的缓存技术就是Memcache。Me
PHP开发中如何使用Memcache进行高效的数据写入和查询?
2023-11-07

PHP开发中如何使用Memcache进行高效的数据读写和查询?

PHP开发中如何使用Memcache进行高效的数据读写和查询?Memcache是一个高性能的分布式内存对象缓存系统,它可以有效地处理数据的读写和查询操作,提高Web应用程序的性能和响应速度。在PHP开发中,使用Memcache可以极大地提升
PHP开发中如何使用Memcache进行高效的数据读写和查询?
2023-11-07

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录