我有一个列表视图,显示来自数据库的图像,代码如下所示。
<ItemTemplate>
<td runat="server" style="background-color: #E0FFFF;color: #333333;">
<asp:ImageButton ID="ImageButton1" runat="server"
ImageUrl='<%# "imageHandler.ashx?ID=" + Eval("ID")%>' />
</td>
</ItemTemplate>
数据源看起来像这样
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:GalleryConnectionString %>"
SelectCommand="SELECT [ID], [IMAGE] FROM [Icon]"></asp:SqlDataSource>
现在我想得到所选图像按钮的行索引以供进一步说明我该怎么做才能引导我?
答案 0 :(得分:1)
点击imagebutton
时发生事件:
protected void ImageButton1_click(object sender, EventArgs e)
{
ImgaeButton btnSender = (ImageButton)sender;
ListViewItem lvItem = (ListViewItem)btnSender.NamingContainer;
lvItem.DataItemIndex();
lvItem.DisplayIndex();
}
DataItemIndex
获取绑定的数据项的索引。
DisplayIndex
获取ListView
中显示的数据项的位置。
答案 1 :(得分:1)
我使用此代码完成了所有stackoverflow(我的老师)
protected void abc(object sender, ListViewCommandEventArgs e)
{
// if(e.CommandSource == System.Web.UI.WebControls.ImageButton)
ListViewDataItem dataItem = (ListViewDataItem)e.Item;
//int RowID = Convert.ToInt32(ListView1.DataKeys[dataItem.DisplayIndex].Value);
int DispalyIndex = e.Item.DisplayIndex;
int ItemIndex = e.Item.DataItemIndex;
ImageButton imgbtn = (ImageButton)dataItem.FindControl("ImageButton1");
if (imgbtn != null)
{
string imageurl = imgbtn.ImageUrl;
if (imageurl != null && imageurl != string.Empty)
{
int equalindex = imageurl.IndexOf("=");
int Totallength = (imageurl.TrimEnd()).TrimStart() .Length;
int ImageID = Convert.ToInt32(imageurl.Substring(equalindex + 1, (Totallength -(equalindex+1))));
}
}
}