有人能告诉我如何选择我点击按钮的行吗?
<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。
如何在此下方获得行的优先级和项目? 行在转发器控制中。
答案 0 :(得分: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
或类似的。