GridView中如何在表头加一个ImageButton

又是违规昵称 2008-12-22 05:00:43
环境VS2005, MSSQL2005, XP

我想在GridView表头的某一列上加一个排序的图片按钮,
前台和后台的方法该如何定义?

有的话麻烦发个示例代码,谢谢
...全文
183 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
criedshy 2008-12-22
  • 打赏
  • 举报
回复
添加了"EnableEventvalidation"的功能, ASP.NET会检查 POST方法中的所带的参数,如果认为不合法,就会抛出异常。这个设计的目的是为了防止恶意用户利用post 方法发送一些恶意数据,但是有时一些常见的case也会出错。

一般是因为在客户端调用了js代码,改写了页面控件中的值,而通过postback再次request请求到服务器时,控件的值和原先ViewState中保存的值已经不一样了,
又是违规昵称 2008-12-22
  • 打赏
  • 举报
回复
google了下,在主页面加了一个EnableEventValidation="false",
ImageButton也可以用了,
看来LinkButton与ImageButton的机制有些不一样

哪位大侠能给讲下是其中缘故?
又是违规昵称 2008-12-22
  • 打赏
  • 举报
回复
在页面上我用到了一个自定义的控件ascx,
我跟踪了下,异常是在自定义控件的Page_Load方法(是空的,我没写内容)执行完后抛出的

我试着将主页面的Page_Load方法中加了
if (!IsPostBack)
{

}
ImageButton好使了,
但问题是,我的逻连在IsPostBack时也需要

即这样做,程序能通过,但逻辑是错的
又是违规昵称 2008-12-22
  • 打赏
  • 举报
回复
谢谢楼上几位,
但是你们给前台的不给后台,给后台的不给前台

好像我也没把情况说清楚
我现在是用LinkButton实现的,前台代码如下:

<asp:TemplateField>
<HeaderStyle CssClass="M" Height="24px" BackColor="#DCE6F5" Font-Bold="False"/>
<ItemStyle HorizontalAlign="Left"/>
<HeaderTemplate>
<asp:LinkButton runat="server" CssClass="Center" CommandName="cmd_sort" OnClick="Sort_Click" >学号</asp:LinkButton>
</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="ltr_Sid" Mode ="Encode" runat="server" Text='<%# Eval("StudentID") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>


后台代码是:

protected void Sort_Click(object sender, EventArgs e)
{
Response.Write("OK!!");

}


这种情况下正常,换成ImageButton时不正常,出错信息是:
Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.

caofan520 2008-12-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 vito_fh 的回复:]
一个提示“ <asp:BoundField HeaderText="文本 <img src='图片' border='0' />" HtmlEncode="False" />”
[/Quote]
应该可以
vito_fh 2008-12-22
  • 打赏
  • 举报
回复
一个提示“<asp:BoundField HeaderText="文本 <img src='图片' border='0' />" HtmlEncode="False" />”
jiang_jiajia10 2008-12-22
  • 打赏
  • 举报
回复
你加上双击这个图片按钮他有自己的事件,如果要操作GridView的话就遍历GridView然后就可以操作了。给你个例子

protected void 图片按钮_Click(object sender, EventArgs e)
{
foreach (GridViewRow gr in GridView1.Rows)
{

CheckBox chk = (CheckBox)gr.Cells[4].FindControl("Checksingle");
if (chk.Checked)
{
//操作吧
int au_id = Convert.ToInt32(GridView1.DataKeys[gr.DataItemIndex].Value.ToString().Trim()); //取主键
}
GridView1.DataBind();
}

62,243

社区成员

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

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

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

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