0

itemlist を持つリピーターがあり、C#/sql とデータバインドを介してデータを取得します。次に、アイテムリストの「deleteNewsButton」に onclick javascript を追加します。OnItemDataBound を使用する必要があると思いますか?

これが私のリピーターです:

<asp:Repeater ID="newsListRepeater" runat="server" OnItemDataBound="deleteConfirm_Databound">
        <ItemTemplate>
            <tr>
                <td><%# Eval("id") %></td>
                <td><%# Eval("title") %></td>
                <td><%# Eval("tags") %></td>
                <td><%# Eval("author") %></td>
                <td style="width:100px;"><%# DataBinder.Eval(Container.DataItem, "time", "{0:dd/MM/yyyy}") %></td>
                <td style="width:110px;">
                    <asp:Button ID="editNewsButton" runat="server" OnCommand="editNewsButton_Click" CommandArgument='<%# Eval("id") %>' Text="Rediger" />
                    <asp:Button ID="deleteNewsButton" runat="server" CommandArgument='<%# Eval("id") %>' Text="Slet" />
                </td>
            </tr>
        </ItemTemplate>
</asp:Repeater>

編集:コードの背後からパラメーターを「deleteNewsButton」コントローラーにバインドするにはどうすればよいですか。コードの背後から行う必要があります...

4

2 に答える 2

2

RepeaterItem の代わりに RepeaterItemEventArgs を使用する必要があるリピーター アイテム データバインド イベントの場合

protected void deleteConfirm_Databound(object sender, RepeaterItem e)

になる

protected void deleteConfirm_Databound(object sender, RepeaterItemEventArgs e)

そのコントロールの null チェックも必要になる場合があります。

LinkButton button = (LinkButton)e.FindControl("deleteNewsButton");  
if(button != null) {
    button.Attributes.Add("onclick", "javascript:return " +  
        "confirm('Er du sikker på du vil slette: " +  DataBinder.Eval(e.DataItem, "id") + "')"); 
}

また、確認ボックス用の一般的な JavaScript 関数を作成し、ボタンから呼び出すことも検討してください。

aspx

<script type="text/javascript">
function confirmFunction(id)
{
   return confirm('Er du sikker på du vil slette: ' +  id); 
}
</script>

コードビハインド

LinkButton button = (LinkButton)e.FindControl("deleteNewsButton");  
if(button != null) {
    button.Attributes.Add("onclick", "javascript:return confirmFunction(" + DataBinder.Eval(e.DataItem, "id") + ");"); 
}
于 2012-09-04T10:25:19.173 に答える
1

onclientclickイベントを追加します。

<asp:Button ID="deleteNewsButton"  
OnClientClick="return confirm('Do you really want to Delete this record ?')" 
runat="server" CommandArgument='<%# Eval("id") %>' Text="Slet" />
于 2012-09-04T10:00:30.480 に答える