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 回答