如何从gridview获取图像的ID并增加点击率?

伙伴

我有SQL表Icon(ID(int),ICON_IMAGE(image),hits(int))我正在gridview中访问图像。我的ASP页面代码如下所示

 <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
     AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1">
 <Columns>
     <asp:TemplateField HeaderText="Image">
  <ItemTemplate>
 <asp:Image ID="Image1" runat="server" ImageUrl='<%# "imagehandler.ashx?ID=" + Eval("ID")%>'/>
 </ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ICOBANKConnectionString %>" 
    SelectCommand="SELECT [ICON_IMAGE], [ID] FROM [Icon]"></asp:SqlDataSource>

imagehandler.ashx代码是这样的

 SqlConnection con = new SqlConnection();
    con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ICOBANKConnectionString"].ConnectionString;



    SqlCommand cmd = new SqlCommand();
    cmd.CommandText = "SELECT  ICON_IMAGE FROM  Icon WHERE (ID = @ID)";
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.Connection = con;

    SqlParameter ImageID = new SqlParameter("@ID", System.Data.SqlDbType.Int);
    ImageID.Value = context.Request.QueryString["ID"];
    cmd.Parameters.Add(ImageID);
    con.Open();
    SqlDataReader dReader = cmd.ExecuteReader();
    dReader.Read();
    context.Response.BinaryWrite((byte[])dReader["ICON_IMAGE"]);
    dReader.Close();
    con.Close();

它的工作正常。现在的问题是我正在尝试获取图像的ID以在其他页面上显示它,并且当有人单击图像时也增加了点击率。我该怎么做呢?

马诺吉

这是一个简单的方法:

protected void grdView_RowCommand(object sender, GridViewCommandEventArgs e)

{
    if (e.CommandName == "selectImage")
    {

        int rowIndex = Convert.ToInt32(e.CommandArgument); // Get the current row
        int cellVal = Convert.ToInt32(grdView.Rows[rowIndex].Cells[2].Text);//Get the cell value

        Response.Write(cellVal.ToString());

    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章