1

这是 asp.net 的代码标记代码,并且有一个图像按钮,我想要下载项目的单击事件代码我尝试在单击事件上编写代码,但它不起作用

    <asp:ListView runat="server" ID="ListView1" GroupItemCount="1">
                <LayoutTemplate> 
                <div>
                        <asp:PlaceHolder runat="server" ID="groupPlaceHolder" />
                    </div>              
                </LayoutTemplate>
                <GroupTemplate>   
                   <div style="clear: both;">
                        <asp:PlaceHolder runat="server" ID="itemPlaceHolder" />
                    </div>                       
                </GroupTemplate>
                <ItemTemplate>
                <div style="margin-left: 20px; border: 2px rgba(255, 102, 0, 0.36) 
dotted; width: 900px; padding: 10px;">
    <video src='<%# "Handler.ashx?id=" + Eval("id") %>' 
width="900" height="400" controls="" preload=""></video>
    </div>    
          <div style="width:950px; height:90px;" align="right">
              <asp:ImageButton ID="ImageButton1" 
ImageUrl="images/download-button.jpg" runat="server" width="230px"/> 
      </div>
                </ItemTemplate>            
                <GroupSeparatorTemplate>
                    <div style="clear:both"></div> 
                </GroupSeparatorTemplate>
                <EmptyDataTemplate>
                </EmptyDataTemplate>
            </asp:ListView>

这是同一页面上的 ac# Private 代码类

Private void Download(string ID)
{
  some code here for download
}

请让我知道如何在图像按钮上编码以下载文件。

错误:

无效的回发或回调参数。

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.
4

2 回答 2

0

要访问列表视图中的该按钮,您应该使用如下的项目命令事件:

protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        if (e.CommandName == "EditRecord")
        {

        }
        else if (e.CommandName == "DeleteRecord")
        {

        }
    }

您也可以使用按钮的 onclick 事件,但不推荐这样做。您必须手动添加OnClick="ImageButton1_OnClick()"in 按钮标记,然后手动将事件放入代码隐藏文件中

protected void ImageButton1_OnClick(object sender, EventArgs e)
{

}

关于您的 Invalid postback or callback argument 错误,某些 html 是由某些控件生成的。您必须概述您的整个网络表单,并在 scriptmanager 下注册您正在使用的任何脚本。或者如果没有任何效果,您可以禁用此检查。<%@ Page EnableEventValidation="false" %>

于 2013-06-10T06:38:33.077 回答
0

按钮控件在列表视图中,为什么不给它命令名称,然后运行列表视图的项目命令。例如

分配 Image 按钮的 CommandName 属性,然后在 Listview 的 ItemCommand 中写入

<asp:ImageButton ID="ImageButton1" ImageUrl="images/download-button.jpg" 
runat="server" width="230px" CommandName ="Download"/> 

if (e.CommandName = "Download")
{

在这里写你的代码..

 }
于 2013-06-08T15:39:34.283 回答