3

GridViewの各行の最後に削除画像を追加しようとしています。ユーザーが画像をクリックして行を削除できるようにしたいと思います。

そこで、HyperLinkFieldを使用して、レコードを削除する別のページへのリンクを作成しました。

<asp:HyperLinkField DataNavigateUrlFields="ID" 
                        DataNavigateUrlFormatString="RemoveLine.aspx?ID={0}"                             
                        Target="_blank"   />

HyperLinkFieldにはImageタグが含まれていないため、Imageを内部に含むTemplateFieldを作成しました。

<asp:TemplateField>
    <ItemTemplate>
        <asp:Image ID="imageRemove" runat="server" ImageUrl="~/Images/smallcross.gif"  />                                
    </ItemTemplate>                        
</asp:TemplateField>

ただし、HyperLinkFieldとImageは異なる列に表示され、画像にはクリックイベントがありません。

2つを組み合わせる方法はありますか?

ASP.Net4.0を使用しています。

前もって感謝します

4

4 に答える 4

5

通常、削除するレコードを特定する必要があります。CommadArgumentプロパティを使用して、レコードの ID を特定できます。

<asp:TemplateField HeaderStyle-Width="40">
    <ItemTemplate>
        <asp:ImageButton ID="ButtonDelete" runat="server"  
            ImageUrl="~/Imags/delete.png" OnClick="ButtonDelete_Click" ToolTip="Delete"
            CommandArgument='<%#Bind("UserId")%>'/>
    </ItemTemplate>
</asp:TemplateField>

protected void ButtonDelete_Click(object sender, EventArgs e)
{
    ImageButton button = sender as ImageButton;
    DeleteUserById(Convert.ToInt32(button.CommandArgument));
}
于 2012-04-27T16:10:48.050 に答える
2
<asp:TemplateField>
 <ItemTemplate>
    <asp:ImageButton ID="btnDelete" runat="server"  
        ImageUrl="~/Imags/delete.png" OnClick="btnDelete_Click"
 ToolTip="Delete row" CommandName="Eliminar" CommandArgument='<%#Eval("UserId")%>'/>
 </ItemTemplate>

CommandArgumentを使用して、選択した行のID値を渡し、目的の結果を実行できます。

// fires when the ImageButton gets clicked
protected void GridView1_ItemCommand(object sender, DataGridCommandEventArgs e)
{
  if(e.Commandname ="Eliminar"){
  this.Eliminar(Convert.ToInt32(e.CommandArgument));

}

}

// function to delete the record
 private void Eliminar(int code)
 { 
    //custom code to delete the records
 }
于 2012-04-27T19:31:12.673 に答える
0

画像ボタンはどうですか?

<ItemTemplate>
        <asp:ImageButton ID="ImageButton1" runat="server" 
            ImageUrl="~/Images/smallcross.gif" onclick="ImageButton1_Click" />
</ItemTemplate>
于 2012-04-27T15:28:12.570 に答える
0

未加工のアンカー タグで画像をラップすると、同じ結果が得られます。

<asp:TemplateField>

<ItemTemplate>

<a href="RemoveLine.aspx?ID={0}">      
<asp:Image ID="imageRemove" runat="server" ImageUrl="~/Images/smallcross.gif" />                                              
</a>
</ItemTemplate>

</asp:TemplateField>
于 2012-04-27T16:13:11.347 に答える