ajax与gridview结合无刷新新增、修改、删除数据的asp.net例子有吗?

ahongzhu 2008-12-15 04:05:21
如题,我想用Ajax与gridview实现增加、删除、修改数据库的数据,无刷新的,之前找了一个,但是每修改一个单元格都要刷新页面,不好,想要一个无刷新的。
谢谢!
...全文
1009 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
bonnibell 2008-12-24
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20080917/08/4e6da1cd-72e7-44be-bd27-ad0336e9663a.html
ylc0104 2008-12-24
  • 打赏
  • 举报
回复
我记得要在IE的设置里改一下
就能实现及时显示了。
午夜咖啡男 2008-12-19
  • 打赏
  • 举报
回复
回复7楼:ext.form.gridpanel使用的是一个类似客户端mvc的结构,m:store,c:gridpanel, v:gridview。同时使用了观察者模式,从上往下进行观察,新增一个操作的步骤实际上是向store里面insert数据,它会通知监听他的girdpanel->gridview发生相应的表象上的变化。
午夜咖啡男 2008-12-19
  • 打赏
  • 举报
回复
我们公司最近正在搞这样一个类似的东西,我就是做这块儿客户端的。老实说技术实现上没有什么难点,只要你足够熟悉js/json,你按照ext给的sample会很容易就把页面展现起来。但是你这样的需求请小心是否会存在逻辑上的隐患,这也是我们目前正在考虑的问题。比如说一个gird,我可以在上面随意的修改,但是每一次修改对控件blur的时候,都进行提交,数据库的压力会很大,这是第一 ,第二,你还需要在服务器端进行重组的分析,比如传的数据是否合法等等判断,并返回客户端?诸如此类问题,建议先有一个缜密的设计之后,再动手。动手前,先确定自己有一定的js基础,不然还是不要碰ext比较好
eyunbo 2008-12-19
  • 打赏
  • 举报
回复
如果楼主能用java编程,不妨试一试GWT。
有兴趣请联系abo@dididodo.com
ayic2 2008-12-19
  • 打赏
  • 举报
回复
ext,没错,就是用ext
ayic2 2008-12-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 spyking945 的回复:]
明明用了asp怎么还说vbscript+html就能实现呢

要明白一点vbscript是客户端脚本,是不能操作数据库的

如果你不用asp是办不到的
[/Quote]

asp可以用vbscript或javascript作开发语言的,就像asp.net可以用c#和vb.net开发一样
will_bi 2008-12-17
  • 打赏
  • 举报
回复
我也想知道新增数据后在gridview里怎样可以及时的显示
wndsc 2008-12-16
  • 打赏
  • 举报
回复
怎么实现都行,楼主求知心切呀~!!
想法很好,搞定了给我传以下~!!呵呵
lyserver 2008-12-16
  • 打赏
  • 举报
回复
其实这根ajax关系不大,俺曾经用vbscript+html实现过,效果图如下:
chen3002min 2008-12-16
  • 打赏
  • 举报
回复
学习,帮顶
Jarvis-Li 2008-12-16
  • 打赏
  • 举报
回复
明明用了asp怎么还说vbscript+html就能实现呢

要明白一点vbscript是客户端脚本,是不能操作数据库的

如果你不用asp是办不到的
lyserver 2008-12-16
  • 打赏
  • 举报
回复
这就是上面界面的源代码,还有一个辅助函数库,代码有点多,就不贴了。至于IHTTP组件,是我写的用来替代XMLHTTP的,俺不喜欢XMLHTTP,功能太弱,而且XML格式会浪费过多的带宽,当然,大家可以使用XMLHTTP,但实现的核心是熟悉HTML,此外,在后台俺还有一个通用的增加和替换多条记录的存储过程,这些都是俺现在手头的一个项目的一部分,回头俺打算贴在博客里,如果都贴出来,太多了。
<%@ Language=VBScript %>
<%Option Explicit%>
<%
Dim DB
Dim strHTBH,strData
strHTBH=Request("HTBH")
strData=Request("Data")
If Len(strData)>0 And Len(strHTBH) Then
Dim CMD
Set DB=CreateObject("ADODB.Connection")
Set CMD=CreateObject("ADODB.Command")
DB.Open Session("DBSetting")
CMD.ActiveConnection =DB
CMD.CommandText ="PROC_INSERT"
CMD.CommandType =4
CMD.Execute ,Array("分户_借款合同_保证信息",strData," WHERE 机构代码='" & Session("WorkUnitCode") & "' AND 合同编号='" & strHTBH & "'")
DB.Close
Set CMD=Nothing
Set DB=Nothing
Response.Write (Err.number=0)
Response.End
ElseIf Len(strHTBH)>0 Then
Dim i,RS
strData=""
Set DB=CreateObject("ADODB.Connection")
DB.Open Session("DBSetting")
Set RS=DB.Execute("SELECT 机构代码,合同编号,保证人,法人代表,联系地址,联系电话,手机号码 FROM 分户_借款合同_保证信息 WHERE 机构代码='" & Session("WorkUnitCode") & "' AND 合同编号='" & strHTBH & "'")
For i=0 To RS.Fields.Count-1
strData=strData & "┇" & RS.Fields(i).Name
Next
strData=Mid(strData,2)
If Not RS.EOF Then
strData=strData & "┛" & RS.GetString(,,"┇","┛")
End If
RS.Close
DB.Close
Set RS=Nothing
Set DB=Nothing
If Right(strData,1)="┛" Then strData=Left(strData,Len(strData)-1)
Else
Response.End
End If
%>
<html>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<HEAD>
<link href="css/Dataform.css" rel="stylesheet" type="text/css">
<link href="css/WebGrid.css" rel="stylesheet" type="text/css">
<%
Response.Write "<script language=vbscript>" & vbcrlf
Response.Write "Dim m_strData" & vbcrlf
Response.Write "m_strData=" & chr(34) & strData & chr(34) & vbcrlf
Response.Write "</script>" & vbcrlf
%>
</head>
<body style="margin-left:8px">
<table style="width:536px" class="Dataform" cellspacing="0" id=tb1>
<thead>
<tr>
<th colspan="2">保证人登记</td>
</tr>
</thead>
<tbody>
<tr>
<td width="35%">机构代码:</td>
<td width="65%"><input type="text" id=jgdm value=<%=Session("WorkUnitCode")%> disabled></td>
</tr>
<tr>
<td width="35%">合同编号:</td>
<td width="65%"><input type="text" id=htbh value=<%=strHTBH%> disabled></td>
</tr>
<tr>
<td>保证人名称:</td>
<td><input type="text" id=khmc maxlength=20 style="width:200px"><font>*</font></td>
</tr>
<tr>
<td>法人代表:</td>
<td><input type="text" id=frdb maxlength=4></td>
</tr>
<tr>
<td>联系地址:</td>
<td><input type="text" id=lxdz maxlength=20 style="width:200px"></td>
</tr>
<tr>
<td>联系电话:</td>
<td><input type="text" id=lxdh maxlength=12></td>
</tr>
<tr>
<td>手机号码:</td>
<td><input type="text" id=sjhm maxlength=12></td>
</tr>
<tr style=display:none>
<td>操作日期:</td>
<td><input type="text" value=<%=Date%> id=czrq></td>
</tr>
<tr style=display:none>
<td>操作机构:</td>
<td><input type="text" id=czjg value=<%=Session("UnitCode")%>></td>
</tr>
<tr style=display:none>
<td>操作人员:</td>
<td><input type="text" id=czry value=<%=Session("UserName")%>></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan=2 height=40 align=center valign=middle>
<input type="button" value=" 删除 " id=btnDelete>  <input type="button" value=" 插入 " id=btnInsert>  <input type="button" value=" 保存 " id=btnSave>  <input type="button" value=" 关闭 " id=btnClose>
</td>
</tr>
</tfoot>
</table>
<div id=tblContainer>
</div>

</body>

<script language=vbscript>
Sub window_onload
If Right(m_strData,1)="┛" Then m_strData=Left(m_strData,Len(m_strData)-1)
tblContainer.innerHTML=MakeGridWithCheckBox(m_strData,"保证人信息")
End Sub
Sub btnInsert_onClick
Dim i,Values
Dim oTable,oRow

khmc.value=replace(khmc.value," ","")
If Len(khmc.value)=0 Then
MsgBox "客户名称为空,插入失败!",48,"提示"
Exit sub
End If

Set oTable=document.getElementById("datagrid")

'行数最多为5行(带标题行为6行)
If oTable.Rows.length>=5 Then
MsgBox "行数超过限制!",48,"提示"
Exit Sub
End If

'检查该资料是否已存在
If oTable.Rows.length>1 Then
For i=1 To oTable.Rows.length-1
Set oRow=oTable.Rows(i)
If Trim(oRow.cells(2).innerText)=khmc.value Then
MsgBox "该保证人已经存在,插入失败!",48,"提示"
Exit Sub
End If
Next
End If

'插入行
Values=Array(jgdm.value,htbh.value,khmc.value,frdb.value,lxdz.value,lxdh.value,sjhm.value)
Set oRow=oTable.insertRow
For i=0 To UBound(Values)
If Len(Values(i))=0 Then Values(i)=" "
oRow.insertCell().innerText=Values(i)
Next
oRow.insertCell().innerHTML="<INPUT type=checkbox name=asp_checkbox>"
End Sub

Sub btnDelete_onClick
Dim i,nLen
Dim oTable,oCheckBoxs

Set oTable=document.getElementById("datagrid")
Set oCheckBoxs=document.getElementsByName("asp_checkbox")
nLen = oCheckBoxs.length
For i=nLen-1 To 0 Step -1
If oCheckBoxs(i).Checked Then
oTable.deleteRow i+1
End If
Next
Set oTable=Nothing
Set oCheckBoxs=Nothing
End Sub
Sub btnSave_onClick
Dim i,j
Dim o,oTable,oRow,strData,strURL,strReturn

Set oTable=document.getElementById("datagrid")
If oTable.rows.length=1 Then
Msgbox "没有可供保存的数据!",48,"提示"
Exit Sub
End If

strData=""
For i=1 To oTable.rows.length-1
Set oRow=oTable.Rows(i)
For j=0 To oRow.cells.length-2 '不包括最后1列的选择项
strData=strData & Trim(oRow.cells(j).innerText) & "┇" '插入列标志
Next
strData=strData & czrq.value & "┇" & czjg.value & "┇" & czry.value & "┛"
Next
strData=Left(strData,Len(strData)-1) '去掉最后1个换行标志
Set o=CreateObject("IHttp.URL")
strURL=GetUrl & "借款合同_保证信息.asp?Data=" & strData & "&HTBH=" & htbh.value
strUrl=o.URLEncoding(strURL)
strReturn = o.GetResponse(strUrl)
Set o=Nothing
If CBool(strReturn) Then
MsgBox "数据已成功保存,请继续...",64,"提示"
'window.close
Else
MsgBox "数据保存失败,请检查原因!",48,"提示"
End If
End Sub
Sub btnClose_onClick
window.close
End Sub

'* *************************************
'* 带复选框的表格函数
'* *************************************
Function MakeGridWithCheckBox(invarText,invarCaption)
Dim i,j,strRows,strCols,strHTML

'On Error Resume Next
strHTML="<table class=webgrid cellspacing=0 id=datagrid Name=datagrid>"
strHTML=strHTML & "<caption id=title>" & invarCaption & "</caption>"

strRows=Split(invarText,"┛")

strHTML=strHTML & "<thead><tr>"
strCols=Split(strRows(0),"┇")
For i=0 To UBound(strCols)
If Len(strCols(i))=0 Then strCols(i)=" "
strHTML=strHTML & "<th>" & strCols(i) & "</th>"
Next
strHTML=strHTML & "<th>选择</th>"
strHTML=strHTML & "</tr></thead>"

strHTML=strHTML & "<tbody>"
For i=1 To UBound(strRows)
strCols=Split(strRows(i),"┇")
strHTML=strHTML & "<tr>"
For j=0 To UBound(strCols)
strCols(j)=Trim(strCols(j))
If Len(strCols(j))=0 Then strCols(j)=" "
strHTML=strHTML & "<td><nobr>" & strCols(j) & "</nobr></td>"
Next
strHTML=strHTML & "<td><nobr><INPUT type=checkbox name=asp_checkbox></nobr></td>"
strHTML=strHTML & "</tr>"
Next
strHTML=strHTML & "</tbody>"
strHTML=strHTML & "</table>"
MakeGridWithCheckBox=strHTML
End Function
</script>
</html>
<script language=vbscript src="vbs/AssistantLib.vbs"></script>
Jarvis-Li 2008-12-16
  • 打赏
  • 举报
回复
请问一楼不是ajax怎么进行异步操作数据库啊?
能把你的例子拿出来看看吗?

在大型企业级项目中,UI 设计通常遵循统一的设计语言规范(Design System)。为了确保不同页面间的表格呈现风格一致,应优先采用集中式 CSS 类定义方式,避免内联样式或重复声明带来的维护难题。以下是一个典型的全局样式类集合示例:important;这些类可在.aspx页面中直接引用,也可通过后台代码动态绑定。例如,在标记语言中为 GridView 指定整体样式:上述写法中:CssClass控制根元素的整体边框与间距;

52,782

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧