0

ボタンをクリックした行の下の行を選択するにはどうすればよいですか?

<asp:Button ID="btnmoveup" runat="server" Text="/\" OnCommand="MoveButton_Clicked"
                                    CommandName="UP" CommandArgument='<%# Eval("ProjectID") + ";"+Eval("Priority")%>'/>
                            </td>
                            <td>
                                <asp:Button ID="btnmovedown" runat="server" Text="\/" OnCommand="MoveButton_Clicked"
                                    CommandName="DOWN" CommandArgument='<%# Eval("ProjectID") + ";"+Eval("Priority")%>' />

背後にあるコード:

protected void MoveButton_Clicked(object sender, CommandEventArgs e)
{
string[] arguments = e.CommandArgument.ToString().Split(new char[] {';'});
string pid1;
int prior;
pid1 = arguments[0];
prior = int.Parse(arguments[1]);

これにより、ボタンをクリックした行の優先度とProjectIDがわかります。

この下の行の優先度とプロジェクトを取得するにはどうすればよいですか?行はリピーターコントロールにあります。

4

1 に答える 1

0

に変更CommandArgumentします<%# Container.ItemIndex %>

次に、Clickedイベントで、次のようなことを行うことができます。

int clickedIndex = int.Parse(e.CommandArgument);
int selectIndex = clickedIndex + 1; // or -1 depending on the button clicked.
var dataItem = (YourDataType)(yourRepeater.Items[selectIndex].DataItem);
var priority = dataItem.Priority;
var projectID = dataItem.ProjectID;

または、優先度とプロジェクトIDをリピーターの非表示フィールドにバインドして、yourRepeater.Items[selectIndex].FindControl('yourHiddenFieldId').Textまたは同様のものを使用することもできます。

于 2012-06-22T13:50:21.463 に答える