关于GRIDVIEW里的ONSORTING事件,我点了他只是刷新,不排序

灬上海爽爷 2010-01-23 05:05:44
各位大大,大家好,小弟刚从ASP转向ASP.NET,现在把代码贴上
aspx里:

<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AutoGenerateColumns="False" PageSize="10"
AllowSorting="true" DataKeyNames="Id"
onrowdatabound="GridView1_RowDataBound"
onrowupdating="GridView1_RowUpdating"
onrowcancelingedit="GridView1_RowCancelingEdit"
onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing"
onpageindexchanging="GridView1_PageIndexChanging"
onsorting="gvsort">
<Columns>
<asp:TemplateField HeaderText="Id" SortExpression="Id" ItemStyle-Width="170px">
<ItemTemplate>
<asp:label runat="server" ID="lblId" Text='<%# Eval("Id") %>'></asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:label runat="server" ID="txtId" Text='<%# Bind("Id") %>'></asp:label>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="姓名" SortExpression="Name" ItemStyle-Width="170px">
<ItemTemplate>
<asp:label runat="server" ID="lblName" Text='<%# Eval("Name") %>'></asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtName" Text='<%# Bind("Name") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="密码" SortExpression="Password" ItemStyle-Width="170px">
<ItemTemplate>
<asp:label runat="server" ID="lblPassword" Text='<%# Eval("Password") %>'></asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtPassword" Text='<%# Bind("Password") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="电话" SortExpression="Tel" ItemStyle-Width="170px">
<ItemTemplate>
<asp:label runat="server" ID="lblTel" Text='<%# Eval("Tel") %>'></asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtTel" Text='<%# Bind("Tel") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="介绍" SortExpression="Intro" ItemStyle-Width="170px">
<ItemTemplate>
<asp:label runat="server" ID="lblIntro" Text='<%# Eval("Intro") %>'></asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" ID="txtIntro" Text='<%# Bind("Intro") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="操作" ItemStyle-Width="170px">
<ItemTemplate>
<asp:LinkButton ID="btnEdit" runat="server" CommandName="Edit">编辑</asp:LinkButton>
<asp:LinkButton ID="btnDelete" runat="server" CommandName="Delete" OnClientClick="return confirm('您确定要删除吗?')">删除</asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="btnUpdate" runat="server" CommandName="Update">更新</asp:LinkButton>
<asp:LinkButton ID="btnCancel" runat="server" CommandName="Cancel">取消</asp:LinkButton>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
<PagerSettings Mode="NextPreviousFirstLast" FirstPageText="首页" LastPageText="末页" NextPageText="下一页" PreviousPageText="上一页" />
</asp:GridView>
<a href="UserAdd.aspx" target="_blank">添加人员</a>
</div>
</form>


.cs里:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();//绑定gridview的方法
}
}

private void Bind()
{
SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyTestConnectionString"].ConnectionString);
string sql = "select * FROM [User] order by " + ViewState["SortExpression"]; //这边报错说by附近语法错误
SqlDataAdapter adapter = new SqlDataAdapter(sql, Conn);
Conn.Open();
DataSet ds = new DataSet();
adapter.Fill(ds);
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
Conn.Close();
}
protected void gvsort(object sender, GridViewSortEventArgs e)
{
if (ViewState["Order "] == null)
{
ViewState["Order "] = "ASC ";
}
else
{
if (ViewState["Order "].ToString() == "ASC ")
{
ViewState["Order "] = "DESC ";
}
else
{
ViewState["Order "] = "ASC ";
}
}
Bind();
}


没关系的我就不贴了,报错的地方在CS里,我注释了
...全文
317 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
灬上海爽爷 2010-01-23
  • 打赏
  • 举报
回复
已收到,非常感谢
LeonXLee 2010-01-23
  • 打赏
  • 举报
回复
方法已PM,请注意查收
fengyunshier 2010-01-23
  • 打赏
  • 举报
回复
如果像你所说的话,那可能是ViewState["SortExpression"]的值有问题。你调试看一下,看它的值是否是排序字段
灬上海爽爷 2010-01-23
  • 打赏
  • 举报
回复
怎么没有人呀,好像是ORDER BY 后面的东西传不过来,谁知道怎么写呀

62,074

社区成员

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

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

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

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