【问题标题】:Add image button to gridview databound dynamically将图像按钮动态添加到gridview数据绑定
【发布时间】:2011-08-03 12:49:03
【问题描述】:

我正在显示一个网格视图,它应该显示一个包含图像按钮的列。

如何动态地将图像按钮添加到 gridview 行?

我不想使用 gridview 的设计字段中的模板字段输入。由于这是图像按钮,我应该能够捕获相同的事件。如何做同样的事情?

【问题讨论】:

  • 查看此链接,它可能对您有所帮助。 forums.asp.net/t/1169201.aspx/1
  • 感谢工作!我现在可以看到图像按钮了!!但是如何添加图片按钮的点击事件???
  • 你可以使用它来添加事件`img.Click += new EventHandler(img_Click); } void img_Click(object sender, EventArgs e) { Label1.Text = "从动态按钮点击事件中设置的文本"; }
  • 另外,如果您想将 onclick 事件 (javascript) 添加到图像按钮,您可以这样做:img.Attributes.Add("onclick","yourjavascriptfunctionHere();");显然,您需要在您的 aspx 页面中定义您的javascriptfunctionHere()。

标签: c# .net asp.net visual-studio gridview


【解决方案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 数据库文件,任何图像都不适合您..如果在添加 imageurl 时图像未显示在下拉列表中,请尝试物理添加其路径.

【讨论】:

    【解决方案2】:

    我认为您可以为此使用模板字段。您需要做的是在 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 创建单击事件。在那里,您可以获得单击的图像按钮的 id/rowindex 并做任何您想做的事情。事件可能如下所示

     protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            ImageButton btn = (ImageButton)sender;
            string rowindex = btn.Attributes["id"];
    
        }
    

    然后在 GridView 模板字段中,您可以将单击事件添加到 ImageButtons 的 onClick 事件。这可能如下所示

    <asp:TemplateField HeaderText="Image">
                    <ItemTemplate>
                        <asp:ImageButton  runat ="server" ID="imgbtn1"  onclick="ImageButton1_Click"/>
                    </ItemTemplate>
                </asp:TemplateField>
    

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      相关资源
      最近更新 更多