选择行下一个点击

问题描述:

有人可以告诉我如何选择行下我单击按钮?选择行下一个点击

<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]); 

这让我在我点击按钮行的优先级和专案。

我该如何获得下面这行的优先级和项目? 行在中继器控制中。

+0

什么样的行?客户端表行?服务器端表格行? Gridview的行? – GrayFox374

将您的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或相似。

+0

感谢您的回复,但如果我想要两个呢? Rowid和下面/上面的行的优先级,以及我单击的行的优先级,因为我想交换值 – Pradit

+0

您可以按照与下面的行值完全相同的方式访问点击行的值。你只需使用'yourRepeater.Items [clickedIndex]'而不是'yourRepeater.Items [selectIndex]'。 – Rawling

+0

好的,谢谢让我给它一个镜头! ! – Pradit