郁闷了几天的问题(GridView),求解决

robake 2012-07-14 05:52:15
问题:点编辑或是删除,没有反应,看似页面刷新了一下。是在asp.net mvc2中的View.
请看下代码

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<script runat="server">
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
Response.Write("ok");
}

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
this.GridView1.EditIndex = e.NewEditIndex;
Response.Write(GridView1.EditIndex);
GridViewBind();
}


protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
GridViewBind();
}
}

private void GridViewBind()
{
string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
string SqlStr = "SELECT * From [Msgs] Order By Id desc";
DataSet ds = new DataSet();

try
{
SqlConnection conn = new SqlConnection(connStr);
if (conn.State.ToString() == "Closed") conn.Open();
SqlDataAdapter da = new SqlDataAdapter(SqlStr, conn);
da.Fill(ds, "Msgs");
if (conn.State.ToString() == "Open") conn.Close();

GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
}
catch (Exception ex)
{
Response.Write("数据库错误,错误原因:" + ex.Message);
Response.End();
}
}


</script>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
公告管理
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>公告管理</h2>
<form id="Form1" runat=server>
<asp:GridView ID="GridView1" Runat="Server"
AllowSorting="True" AllowPaging="True" AutoGenerateColumns="False"
BackColor="#CCFDCC" BorderColor="Black" BorderStyle="Dashed" BorderWidth="1px"
Caption="" DataKeyNames="ID" Width="720px" CaptionAlign="Left"
Font-Size="14px" OnRowEditing="GridView1_RowEditing">
<RowStyle Height="30px" HorizontalAlign="Left" />
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False"
ReadOnly="True" SortExpression="ID" FooterStyle-BorderStyle="NotSet"
ControlStyle-BorderStyle="Solid" >
<ControlStyle BorderStyle="Solid"></ControlStyle>
</asp:BoundField>
<asp:BoundField DataField="title" HeaderText="内容" SortExpression="title" />
<asp:BoundField DataField="CreateTime" HeaderText="更新时间"
SortExpression="CreateTime" />
<asp:TemplateField>

<EditItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update" Text="更新"></asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel" Text="取消"></asp:LinkButton>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit" Text="编辑"></asp:LinkButton>
<asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="False" CommandName="Delete" Text="删除"/></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle BackColor="#4F6F04" ForeColor="White" HorizontalAlign="Left"
BorderColor="#046004" BorderStyle="Solid" BorderWidth="1px" Font-Bold="False"
Font-Underline="False" Height="30px" />
<EditRowStyle BackColor="#FAF09A" BorderColor="#B6A50A" ForeColor="White" />
<PagerSettings FirstPageText="" LastPageText="" NextPageText="" PreviousPageText="" />
<RowStyle Height="20px" BackColor="#F7F6F3" ForeColor="#333333" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>

</asp:GridView>
</form>
</asp:Content>




求高人指点,第一次使用GridView,网上搜了N多资料,也参考了MSDN,不知道为何点编辑或是删除就是无效果。
...全文
128 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2012-07-15
  • 打赏
  • 举报
回复
MVC中可以使用这个方法
http://www.cnblogs.com/rubyloveromantic/archive/2010/08/05/aspnet_mvc.html
http://tech.it168.com/a2010/1126/1131/000001131211_2.shtml
孟子E章 2012-07-15
  • 打赏
  • 举报
回复
MVC中可以使用这个方法
http://www.cnblogs.com/rubyloveromantic/archive/2010/08/05/aspnet_mvc.html
http://tech.it168.com/a2010/1126/1131/000001131211_2.shtml
robake 2012-07-15
  • 打赏
  • 举报
回复
搞定,多谢
孟子E章 2012-07-14
  • 打赏
  • 举报
回复
点击编辑的时候,其实是进到了控制器里面去了,。你可以参考
Using GridView and DetailsView in ASP.NET MVC


http://www.bipinjoshi.net/articles/59b91531-3fb2-4504-84a4-9f52e2d65c20.aspx
http://www.bipinjoshi.net/articles/be692fd5-27e4-4716-b215-a4e4bb16bad8.aspx
风一样的大叔 2012-07-14
  • 打赏
  • 举报
回复
问一下,你编辑和更新的ID为什么一样啊
robake 2012-07-14
  • 打赏
  • 举报
回复
试了下,依旧如此。增加的代码如下:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string id = GridView1.DataKeys[e.RowIndex].Values[0].ToString();
string title = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("Title")).Text;
//string CreateTime = ((DropDownList)GridView1.Rows[e.RowIndex].FindControl("CreateTime")).SelectedValue;
string CreateTime = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("CreateTime")).Text;

string connStr = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
string SqlStr = "update Msgs Set title='"+ title +"',CreateTime='" + DateTime.Parse(CreateTime) + "' where id=" + id;

try
{
SqlConnection conn = new SqlConnection(connStr);
if (conn.State.ToString() == "Closed") conn.Open();
SqlCommand comm = new SqlCommand(SqlStr, conn);
comm.ExecuteNonQuery();
comm.Dispose();
if (conn.State.ToString() == "Open") conn.Close();

GridView1.EditIndex = -1;
GridViewBind();
}
catch (Exception ex)
{
Response.Write("数据库错误,错误原因:" + ex.Message);
Response.End();
}
}


asp:gridview里也加上了 OnRowUpdating="GridView1_RowUpdating"
情况依旧如此
孟子E章 2012-07-14
  • 打赏
  • 举报
回复
GridView 没有绑定GridView1_RowUpdating啊

另外,一般母板页里面有 form了,内容页就不能再加了,form是不能嵌套的

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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