0
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1"
  OnItemDataBound="Repeater1_ItemDatabound">
    <ItemTemplate>
      <tr>
        <td>
          <%#Eval("Priority") %>
        </td>
        <td>
        <%#Eval("ProjectName") %>
        </td>                 
        <td>
          <%#Eval("DisplayName") %>
        </td>
        <td>
          <asp:HyperLink ID="HyperLink1" runat="server"
            NavigateUrl='<%# Eval("EmailID" , "mailto:{0}") %>'
            Text='<%# Eval("EmailID") %>'></asp:HyperLink>
        </td>
        <td>
          <%#Eval("ProjectID") %>
        </td>
        <td>
          <asp:Button ID="btnCompleteProject" runat="server" Text="Close Project"
            OnCommand="CloseProject"  CommandName="Close"
            CommandArgument='<%# Eval("ProjectID") %>' />

プロジェクトを閉じるボタン (btnCompleteProject) をクリックした行の ProjectID を取得するにはどうすればよいですか?

4

3 に答える 3

2

ItemCommand イベントをリピーター コントロールに追加し、次のようなコールを追加できます。

public void Repeater1_ItemCommand(Object Sender, RepeaterCommandEventArgs e) 
{
    // check if the command name is close (if it's the button)
    if (e.CommandName == "Close") {
       // get CommandArgument you have seeted on the button
       int projectd = (int)e.CommandArgument;

       // your code here...

    }
}  

リピータ タグを追加すると、次のイベントが発生します。

<asp:Repeater ID="Repeater1" 
   runat="server" 
   DataSourceID="SqlDataSource1" 
   OnItemDataBound="Repeater1_ItemDatabound" 
   OnItemCommand="Repeater1_ItemCommand">
...
</asp:Repeater>
于 2012-07-03T14:16:38.150 に答える
0

Brian Mains の答えは正しいです。マークアップでは、ボタン コマンド引数で ProjectID 列の値を設定しています。ボタンでこのコードをクリックします

protected void btnCompleteProject_Click(object sender, EventArgs e)
 {
   var argValue = (int)((Button)sender).CommandArgument;
 }

ProjectID を取得します。

于 2012-07-03T15:00:01.397 に答える
0

OnClick="btnCompleteProject_Click"ボタンのマークアップに追加し、ハンドラーを追加します。

protected void btnCompleteProject_Click(object sender, EventArgs e)
{
    var argValue = (int)((Button)sender).CommandArgument;
}

ボタンのクリックもキャッチする Repeater.ItemCommand をリッスンすることもできます。

于 2012-07-03T14:14:57.567 に答える