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

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

本文向您展示了如何在ASP.NET的web开发框架中进行查询。内容简洁易懂,一定会让你大放异彩。希望通过这篇文章的详细介绍,你能有所收获。

企业解决方案支持用户定义的查询和查找,并将查询定义为标准功能。查找用于将查询值返回到数据输入表单。

首先配置数据库连接字符串,并使用公司注册来注册新的数据库连接。然后在查询设计器中,选择对应的对象并设计关联,Web框架就可以对这个查询进行分析,并将其转化为页面函数。

在客户页面,添加TriggerBox,后面会显示一个小图标来查找数据。

ext : triggerBoxic=' tbxccustomerno ' show label=' true ' Readonly=' false ' triggericon=' Search ' ontriggerclick=' tbxccustomerno _ TriggerClick ' ontextchanged=' tbxCu Stoerno _ textchanged ' autopostback=' true ' label=' customer no '。runat=' server ' lookup=' customentyloukup '数据绑定字符串=' customer entity 3360 customer no '/ext 3360 triggerbox我们来看看后台代码的处理模式。

stringlookup=tbxCustomerNo。查找;tbxCustomerNo。OnClientTriggerClick=Window1。GetSaveStateReference(tbxccustomerno。ClientID,HiddenField1。ClientID,HiddenField2。ClientID)窗口1。GetShowReference(字符串。格式(' lookup.aspx?id={0} ',查找),'查找-up : customer ');在上面的网页中,我们已经将查找属性指定为CustomerEntryLookup。在这句话中,查找与弹出窗口页面的窗口1相关联。同时,页面的HiddenField1被指定为接受Lookup的返回值。* * *调用窗口的回发刷新过程来刷新页面。代码如下

protected void window 1 _ Close(object sender,EventArgse){ stringcustomerNo=tbxccustomerno。文字;

            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开发框架中的查询,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/119728.html

(0)

相关推荐

  • 广字头的字,广字头的字大多与什么有关

    技术广字头的字,广字头的字大多与什么有关“广”字头的字大多与房屋或者建筑物有关。常见的“广”字头的字有庵广字头的字、府、店、庙、库。一、庵 ān
    释义
    1、小草屋:茅~。
    2、佛寺(多指尼姑住的):~堂。尼姑~。
    3、姓

    生活 2021年10月26日
  • C++中随机存取文件的处理方法是什么

    技术C++中随机存取文件的处理方法是什么这篇文章主要讲解了“C++中随机存取文件的处理方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++中随机存取文件的处理方

    攻略 2021年11月29日
  • 如何进行C#递归算法理解的分析

    技术如何进行C#递归算法理解的分析如何进行C#递归算法理解的分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C#递归算法的理解并不是紧紧感

    攻略 2021年11月16日
  • mysql big5转 utf-8的转换程式是怎么样的

    技术mysql big5转 utf-8的转换程式是怎么样的今天就跟大家聊聊有关mysql big5转 utf-8的转换程式是怎么样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文

    攻略 2021年11月17日
  • 岁寒三友是指什么,人们说的“岁寒三友”是什么

    技术岁寒三友是指什么,人们说的“岁寒三友”是什么一、岁寒三友是指:松、竹经冬不凋,梅花耐寒开放,因此有“岁寒三友”之称。二、古诗:1、小松 【唐】杜荀鹤 自小刺头深草里,而今渐觉出蓬蒿。 时人不识凌云木,直待凌云始

    生活 2021年10月20日
  • 如何用VB.NET创建三层结构的应用程序

    技术如何用VB.NET创建三层结构的应用程序这篇文章主要为大家展示了“如何用VB.NET创建三层结构的应用程序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何用VB.NET

    攻略 2021年12月1日