protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
databind();
}
} public void databind()//绑定GridView
{
DataTable dt = new DataTable();
string sql = "select * from x_link";
dt = sqlhelper.GetTable(sql);
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)//GridView编辑事件
{
GridView1.EditIndex = e.NewEditIndex;
databind();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)//GridView取消编辑事件
{
GridView1.EditIndex = -1;
databind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)//GridView更新事件
{
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
string name = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString();
string url = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString();
string sql = "update x_link set x_lname=@name,x_lurl=@url where id=" + id;
SqlParameter[] paras = new SqlParameter[]{
new SqlParameter("@name",name),
new SqlParameter("@url",url)
};
sqlhelper.ExecuteQuery(sql, paras, CommandType.Text);
Response.Redirect("~/article.aspx?tab=4");
}
{
if (!IsPostBack)
{
databind();
}
} public void databind()//绑定GridView
{
DataTable dt = new DataTable();
string sql = "select * from x_link";
dt = sqlhelper.GetTable(sql);
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)//GridView编辑事件
{
GridView1.EditIndex = e.NewEditIndex;
databind();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)//GridView取消编辑事件
{
GridView1.EditIndex = -1;
databind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)//GridView更新事件
{
int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString());
string name = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString();
string url = ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString();
string sql = "update x_link set x_lname=@name,x_lurl=@url where id=" + id;
SqlParameter[] paras = new SqlParameter[]{
new SqlParameter("@name",name),
new SqlParameter("@url",url)
};
sqlhelper.ExecuteQuery(sql, paras, CommandType.Text);
Response.Redirect("~/article.aspx?tab=4");
}
解决方案 »
- SqlDataSource和ObjectDataSource
- 能否用程序控制上传文件到ftp服务器上?
- 大家好,用C#+asp.net或VB+asp.net 如何生成数字证书,谢谢
- .NET初学者问题!Label控件绑定数据方法!在线等~
- 请教一个vs2005的简单问题
- 关于vs.net 2003的安装问题
- 菜菜跪求,好人达人贵人高人热心人都进来
- 菜鸟问题。 未能加载类型“student.Global”。
- DataKeyField属性
- LINUX可不可以建立在WINNT中的网络服务器,让外部网络的计算机通过终端机连入作业?
- winform 对excel文件进行合并单元格时总是弹确定对话框,怎么才能避免这样的对话框?谢谢
- vs2008按f5调试出错,很奇怪
<asp:GridView ID="GridView1" runat="server" DataKeyNames="id"
AutoGenerateColumns="False" onrowcancelingedit="GridView1_RowCancelingEdit"
onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating"
BorderWidth="0px" CellSpacing="20" GridLines="None">
<RowStyle Font-Size="15px" Height="50px" HorizontalAlign="Center" Width="200px"
VerticalAlign="Middle" />
<Columns>
<asp:BoundField DataField="x_lname" HeaderText="网站名称" />
<asp:BoundField DataField="x_lurl" HeaderText="网站网址" />
<asp:CommandField ShowEditButton="True" />
</Columns></asp:GridView>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
博客--文章管理
</title><link href="css/master.css" rel="stylesheet" type="text/css" media="screen" /><link href="css/article.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form name="aspnetForm" method="post" action="article.aspx?tab=4" id="aspnetForm">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="
__VIEWSTATE" value="" />
</div>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
<div>
<input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="SDqJyk5tjZEsiA0WzAS3Lkn74SEbLfcMqMjbAo5DBKqoYZ0hUhqfs0EZVf7f58oXX150b6uh9pkyJ+bvBGz0MIpMG1iVzTvVWzhdrO9bvJHYnvygip8FlsDD8rh5kE5gEMxMjw==" />
</div>
<div>
<div id="wrapper">
<div id="header-wrapper">
<div id="header">
<div id="logo">
<h2 style="font-size:2.4em"><a href="#">No Impossible </a></h2>
</div>
<div id="menu">
<ul>
<li class="current_page_item"><a href="index.aspx">首页</a></li>
<li><a href="articallist.aspx?id=1">文章</a></li>
<li><a href="#">相册</a></li>
<li><a href="#">留言</a></li>
<li><a href="#">关于我们</a></li>
</ul>
</div>
</div>
</div>
<!-- end #header -->
<div id="page">
<div id="page-bgtop">
<div id="page-bgbtm">
<div id="sidebar">
<div class="left">
<ul>
<li><span><b>基本信息</b></span></li>
<li><img src="images/none.jpg" border="0" width="100px" height="100px" /></li>
<li>用户名:111</li>
<li>最新回复: <a href="#">2</a></li>
<li>注册时间:2011-6-20 10:40:41</li>
<li>上次登录: 2011-6-21 22:52:16</li>
</ul>
</div>
<br />
<div class="left">
<ul>
<li><span><b>设置</b></span></li>
<li><a href="Default.aspx">个人信息</a></li>
<li><a href="article.aspx">文章管理</a></li>
<li><a href="#">回复管理</a></li>
<li><a href="article.aspx?tab=4">链接管理</a></li>
<li><a href="#">说说</a></li>
<li><a href="#">消息管理</a></li>
</ul>
</div>
</div>
<!-- end #sidebar -->
<div id="content">
<div id="mycontent">
<div class="Tab menuTab">
<ul class="Tabs" style="font-size:12px;">
<span id="ctl00_ContentPlaceHolder1_MenuTabLabel"><li class=TabOut id=tab1 style='display:'><a href=/blog/article.aspx?tab=1>发表文章</a> </li><li class=TabOut id=tab2 style='display:'><a href=/blog/article.aspx?tab=2>编辑文章</a> </li><li class=TabOut id=tab3 style='display:'><a href=/blog/article.aspx?tab=3>文章管理</a> </li><li class=TabIn id=tab4 style='display:'><a>链接管理</a> </li></span>
</ul>
</div>
<div class="clear">
</div>
<div id="rightWrapper">
<div id="container">
<div>
<table cellspacing="20" border="0" id="ctl00_ContentPlaceHolder1_ctl00_GridView1" style="border-width:0px;">
<tr>
<th scope="col">网站名称</th><th scope="col">网站网址</th><th scope="col"> </th>
</tr><tr align="center" valign="middle" style="font-size:15px;height:50px;width:200px;">
<td>51aspx</td><td>http://www.51aspx.com/</td><td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$ctl00$GridView1','Edit$0')">编辑</a></td>
</tr><tr align="center" valign="middle" style="font-size:15px;height:50px;width:200px;">
<td>博客园</td><td>http://www.cnblogs.com/</td><td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$ctl00$GridView1','Edit$1')">编辑</a></td>
</tr><tr align="center" valign="middle" style="font-size:15px;height:50px;width:200px;">
<td>We 7</td><td>http://www.westengine.com/</td><td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$ctl00$GridView1','Edit$2')">编辑</a></td>
</tr><tr align="center" valign="middle" style="font-size:15px;height:50px;width:200px;">
<td>CSDN</td><td>http://www.csdn.net/</td><td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$ctl00$GridView1','Edit$3')">编辑</a></td>
</tr><tr align="center" valign="middle" style="font-size:15px;height:50px;width:200px;">
<td>CSS+DIV</td><td>http://www.freecsstemplates.org/</td><td><a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$ctl00$GridView1','Edit$4')">编辑</a></td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div style="clear: both;"> </div>
</div>
<!-- end #content -->
<div style="clear: both;"> </div>
</div>
</div>
</div>
<!-- end #page -->
</div>
<br />
<br />
<br />
<div id="footer">
<p>Copyright (c) 2008 All rights reserved. Design by 晓车</p>
</div>
</div>
</form>
</body>
</html>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div id="mycontent">
<div class="Tab menuTab">
<ul class="Tabs" style="font-size:12px;">
<asp:Label runat="server" ID="MenuTabLabel"></asp:Label>
</ul>
</div>
<div class="clear">
</div>
<div id="rightWrapper">
<div id="container">
<asp:PlaceHolder runat="server" ID="ContentHolder"></asp:PlaceHolder>
</div>
</div>
</div>
</asp:Content>
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;public partial class article : XViewStateFilesPage
{
public string TabID
{
get { return Request["tab"]; }
}
protected void Page_Load(object sender, EventArgs e)
{
MenuTabLabel.Text = BuildNavString();
} public string BuildNavString()
{
string strActive = @"<li class=TabIn id=tab{0} style='display:{2}'><a>{1}</a> </li>";
string strLink = @"<li class=TabOut id=tab{0} style='display:{2}'><a href={3}>{1}</a> </li>";
int tab = 1;
string tabString = "";
string dispay = "";
string rawurl = RemoveParamFromUrl(Request.RawUrl, "tab"); if (TabID != null && IsNumber(TabID))
tab = int.Parse(TabID); if (tab == 1)
{
tabString += string.Format(strActive, 1, "发表文章", dispay);
Control ctl = this.LoadControl("~/control/article.ascx");
ContentHolder.Controls.Clear();
ContentHolder.Controls.Add(ctl);
}
else
tabString += string.Format(strLink, 1, "发表文章", dispay, AddParamToUrl(rawurl, "tab", "1"));
if (tab == 2)
{
tabString += string.Format(strActive, 2, "编辑文章", dispay);
Control ct2 = this.LoadControl("~/control/article.ascx");
ContentHolder.Controls.Clear();
ContentHolder.Controls.Add(ct2);
}
else
tabString += string.Format(strLink, 2, "编辑文章", dispay, AddParamToUrl(rawurl, "tab", "2")); if (tab == 3)
{
tabString += string.Format(strActive, 3, "文章管理", dispay);
Control ct3 = this.LoadControl("~/control/deletearticle.ascx");
ContentHolder.Controls.Clear();
ContentHolder.Controls.Add(ct3);
}
else
tabString += string.Format(strLink, 3, "文章管理", dispay, AddParamToUrl(rawurl, "tab", "3")); if (tab == 4)
{
tabString += string.Format(strActive, 4, "链接管理", dispay);
Control ct4 = this.LoadControl("~/control/link.ascx");
ContentHolder.Controls.Clear();
ContentHolder.Controls.Add(ct4);
}
else
tabString += string.Format(strLink, 4, "链接管理", dispay, AddParamToUrl(rawurl, "tab", "4"));
return tabString;
}
是把viewstate写在服务器端的类,你们看见了吧 article.aspx里面调用了4个用户控件,其中就包括link.ascx,但是其他三个控件都起作用了,不论自动回发,删除,添加,都执行了,就到这个gridview的用户控件link.ascx就不起作用了,纠结啊
代码<%@ Master Language="C#" AutoEventWireup="true" CodeFile="manage.master.cs" Inherits="master_manage" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="../css/master.css" rel="stylesheet" type="text/css" media="screen" />
<link href="../css/article.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="wrapper">
<div id="header-wrapper">
<div id="header">
<div id="logo">
<h2 style="font-size:2.4em"><a href="#">No Impossible </a></h2>
</div>
<div id="menu">
<ul>
<li class="current_page_item"><a href="index.aspx">首页</a></li>
<li><a href="articallist.aspx?id=1">文章</a></li>
<li><a href="#">相册</a></li>
<li><a href="#">留言</a></li>
<li><a href="#">关于我们</a></li>
</ul>
</div>
</div>
</div>
<!-- end #header -->
<div id="page">
<div id="page-bgtop">
<div id="page-bgbtm">
<div id="sidebar">
<div class="left">
<ul>
<li><span><b>基本信息</b></span></li>
<li><img src="images/none.jpg" border="0" width="100px" height="100px" /></li>
<li>用户名:<%=dt.Rows[0]["x_uname"].ToString() %></li>
<li>最新回复: <a href="#">2</a></li>
<li>注册时间:<%=dt.Rows[0]["x_time"].ToString()%></li>
<li>上次登录: <%=dt.Rows[0]["lastlogin"].ToString()%></li>
</ul>
</div>
<br />
<div class="left">
<ul>
<li><span><b>设置</b></span></li>
<li><a href="Default.aspx">个人信息</a></li>
<li><a href="article.aspx">文章管理</a></li>
<li><a href="#">回复管理</a></li>
<li><a href="article.aspx?tab=4">链接管理</a></li>
<li><a href="#">说说</a></li>
<li><a href="#">消息管理</a></li>
</ul>
</div> </div>
<!-- end #sidebar -->
<div id="content">
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
<div style="clear: both;"> </div>
</div>
<!-- end #content -->
<div style="clear: both;"> </div>
</div>
</div>
</div>
<!-- end #page -->
</div>
<br />
<br />
<br />
<div id="footer">
<p>Copyright (c) 2008 All rights reserved. Design by 晓车</p>
</div>
</div>
</form>
</body>
</html>
{
databind();
}
改成:
databind();
试试看