我正在显示一个gridview,它应该显示一个包含图像按钮的列。
My Quesiton:我如何动态地将图像按钮添加到gridview行?
我不想通过使用gridview的设计字段中的模板字段来输入。由于这是图像按钮,我应该能够捕获相同的事件。如何做同样的事情?
请指导我!
由于
答案 0 :(得分:1)
点击此链接,它可能对您有帮助。
答案 1 :(得分:1)
我认为你可以在.aspx文件中添加图像到你的编辑和删除按钮,我只是尝试并得到它..
1.首先制作gridview,然后添加OnRowEditing="GridView1_RowEditing" OnRowDeleting="GridView1_RowDeleting"
我告诉您如何添加图像以编辑和删除“更新”和“取消”按钮,您可以以相同的方式继续...
现在转到gridview的来源..
你会看到这样的代码
<asp:CommandField ShowEditButton="True"/>
<asp:CommandField ShowDeleteButton="True"/>
之后改变了一些事情,比如添加
<asp:CommandField ShowEditButton="True" ButtonType="Image" EditImageUrl="~/uploads/edit.png" />
<asp:CommandField ShowDeleteButton="True" ButtonType="Image" DeleteImageUrl="~/uploads/delete.png" />
然后确保仅以45 * 25尺寸保存图像,并将其保存在任何文件夹中,并记住指定我在此处所做的路径,我的文件夹是上传的。
注意:不要将图像存储在App_data中,它用于存储.mdf数据库文件,任何图像都不适合你..如果添加图像时图像没有显示在下拉列表中,请尝试物理添加其路径
答案 2 :(得分:0)
我认为您可以使用模板字段。你需要做的是在GridView RowDataBound事件中找到你在模板字段中添加的ImageButton,然后给出一个ID或行号或者你可以用来识别ImageButton所在的行,作为ImageButton的属性。
您可以使用此地点为ImageUrl提供样本,如下所示。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
ImageButton imgbtn = (ImageButton)e.Row.FindControl("imgbtn1");
if (imgbtn != null)
{
imgbtn.Attributes["id"] = e.Row.RowIndex.ToString();
}
}
}
然后您可以为ImageButton创建click事件。在那里你可以得到被点击的图像按钮的id / rowindex并按你想要的去做。活动可能如下所示
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
ImageButton btn = (ImageButton)sender;
string rowindex = btn.Attributes["id"];
}
然后在GridView模板字段中,您可以将Click事件添加到ImageButtons onClick事件。这可能如下所示
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<asp:ImageButton runat ="server" ID="imgbtn1" onclick="ImageButton1_Click"/>
</ItemTemplate>
</asp:TemplateField>