关于__dopostback的问题,高分求教!
lhtyx 2003-06-28 02:56:39 我有一个页面,用了datagrid显示所有目录的邮件列表的邮件,每一行记录中有一个删除的链接:
<a href="javascript:delemail('<%# DataBinder.Eval(Container.DataItem,"id")%>')">删除</a>
而在客户端用javascript定义了:
function delemail(id)
{
if(confirm("要删除吗?"))
{
document.forms["admin_maillist_gl"].elements["emailid"].value=id;
__doPostBack("Deleteemail","");
}
}
而且同时在表单里建了一个隐藏域和一个linkbutton:Deleteemail
<input type="hidden" id="emailid" runat="server">
<asp:LinkButton ID="Deleteemail" Runat="server" OnClick="delemail_click" Visible="False"></asp:LinkButton>
意思也就是说,当点击每条记录后的删除链接,如果确认后,将会用linkbutton触发的delemail_click事件处理程序来处理删除任务。
但是现在奇怪的是:
当该页面显示是多页时,可以删除,但是当数据只够显示一页时,其后的删除链接点击后也会弹出提示框,但是却会出现脚本错误:
行:17
字符:5
错误:缺少对象
代码:0:
url:http://localhost/myflash/admin/admin_maillist_gl.aspx
也就是指示该脚本程序的__dopostback()程序出错。
该 如何解决 呢?
该页的前台代码如下:
<%@ Page language="c#" Codebehind="admin_maillist_gl.aspx.cs" AutoEventWireup="false" Inherits="myflash.admin.admin_maillist_gl" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>admin_maillist_gl</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<link rel="stylesheet" type="text/css" href="../inc/css.css">
<script language="javascript">
function delemail(id)
{
if(confirm("要删除吗?"))
{
document.forms["admin_maillist_gl"].elements["emailid"].value=id;
__doPostBack("Deleteemail","");
}
}
</script>
</HEAD>
<body>
<form id="admin_maillist_gl" method="post" runat="server">
<input type="hidden" id="emailid" runat="server">
<asp:LinkButton ID="Deleteemail" Runat="server" OnClick="delemail_click" Visible="False"></asp:LinkButton>
<FONT face="宋体">
<div align="center">
<asp:DataGrid id="dg1" runat="server" Width="500px" AllowPaging="True" AutoGenerateColumns="False" CellPadding="5" PageSize="10">
<ItemStyle BackColor="#EFF1F3"></ItemStyle>
<HeaderStyle BackColor="#94CBFF"></HeaderStyle>
<Columns>
<asp:BoundColumn DataField="id" HeaderText="ID">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="dz" HeaderText="地址">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="用户名">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<a href="javascript:window.open('admin_maillist_user_show.aspx?id=<%# DataBinder.Eval(Container.DataItem,"id")%>','','toolbar=no,width=300,height=200');void 0;"><%# DataBinder.Eval(Container.DataItem,"adname")%></a>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="intime" HeaderText="时间">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="编辑">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<a href='admin_maillist_edit.aspx?id=<%# DataBinder.Eval(Container.DataItem,"id")%>'>
编辑</a>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="删除">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<a href="javascript:delemail('<%# DataBinder.Eval(Container.DataItem,"id")%>')">删除</a>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Mode="NumericPages"></PagerStyle>
</asp:DataGrid>
</div>
</FONT>
</form>
</body>
</HTML>