下一页,用于数据编辑

时间:2014-02-20 02:16:14

标签: coldfusion

我做了搜索代码,就像这样。

--pageone.cfm--

<cfparam name="Form.studNo" default="" />

<form action="pagetwo.cfm" method="POST">
<label> Please insert ID:
<input name="studNo" value="<cfoutput>#Form.studNo#</cfoutput>" />
</label>
<input type="submit" value="Search" />
</form>

--pagetwo--

SELECT * FROM students
WHERE students_ID IN (#Form.studNo#)

在第二页,我将显示学生信息的详细信息,如果数据不正确,用户可以编辑新信息。

我正在考虑,每页显示一名学生的数据,用户可以在pageone.cfm上为下一位学生(已插入的ID)单击“下一步”

任何人都可以帮我这些吗?

@henry。 我确实试过这样的事情。

- example.cfm -

<CFPARAM NAME="StartRow" DEFAULT="1">
<CFPARAM NAME="DisplayRows" DEFAULT="1">

<CFQUERY NAME="getStudent" DATASOURCE="#dsn#" 
         CACHEDWITHIN="#CreateTimeSpan(0,0,15,0)#">
         SELECT *
         FROM students
</CFQUERY>


<CFSET ToRow = StartRow + (DisplayRows - 1)>
<CFIF ToRow GT getStudent.RecordCount>
    <CFSET ToRow = getStudent.RecordCount>
</CFIF>

<HTML>
<HEAD>
    <TITLE>Next/Previous Record Browsing</TITLE>
</HEAD>

<BODY>


<CFOUTPUT>
<H4>Displaying records #StartRow# - #ToRow# from the 
#getStudent.RecordCount# data inserted.</H4>
</CFOUTPUT>

<!--- create the header for the table --->
<TABLE CELLPADDING="3" CELLSPACING="0">
<TR BGCOLOR="#888888">
  <TH>Name</TH>
  <TH>ID</TH>
  <TH>Gender</TH>
  <TH>E-mail</TH>
</TR>    

<CFOUTPUT QUERY="getStudent" STARTROW="#StartRow#"
          MAXROWS="#DisplayRows#">
<TR BGCOLOR="##C0C0C0">
  <TD>#Name#</TD>
  <TD>#ID#</TD>
  <TD>#Gender#</TD>
  <TD>#Email#</TD>
</TR>    
</CFOUTPUT>
</TABLE>

<CFSET Next = StartRow + DisplayRows>
<CFSET Previous = StartRow - DisplayRows>

<!--- Create a previous records link if the records being displayed aren't the
      first set --->
<CFOUTPUT>
<CFIF Previous GTE 1>
   <A HREF="example.cfm?StartRow=#Previous#"><B>Previous #DisplayRows# 
      Records</B></A>
<CFELSE>
Previous Records  
</CFIF>

<CFIF Next LTE getStudent.RecordCount>
    <A HREF="example.cfm?StartRow=#Next#"><B>Next 
    <CFIF (getStudent.RecordCount - Next) LT DisplayRows>
      #Evaluate((getStudent.RecordCount - Next)+1)#
    <CFELSE>
      #DisplayRows#
    </CFIF>  Records</B></A>
<CFELSE>
Next Records   
</CFIF>
</CFOUTPUT>

</BODY>
</HTML>

2 个答案:

答案 0 :(得分:0)

您可以使用session在pageone.cfm中存储指定的ID,然后浏览ID数组并使用数组索引作为当前页码,并使用数组长度作为总页数。

然而,在这个时代,使用JS一次显示一条记录更有意义。

答案 1 :(得分:0)

你的方法还可以,但是我建议使用现有的库,这些库可以实现分页,甚至可以构建HTML来显示页码按钮,下一个以前的链接以及不是。

请修改http://paginationcfc.riaforge.org/ - 一个很好地处理分页的ColdFusion项目,非常容易实现,为您节省大量工作。你甚至可以设置它每页显示一条记录,其余的(下一个前一个按钮和可能的“页码”)将由分页组件自动完成。

啊,这样做(一个大的查询和后续的子查询)我强烈建议缓存。 HTH。