我有一个问题,在我的页面上有一个 ListView 控件,我还有一个带有 CommandArgument 的按钮。我知道我可以在 ListView 中读取并找到一个控件:
ListView.Items[i].FindControl("controlname");
我在ListView中的按钮就是这样的
asp:Button ID="WisdomButton" runat="server" CommandName="UpdateWisdom" CommandArgument='<%# need my index for Item[i] to post here %>'
OnCommand="UpdateWisdom" Text="Update" />
我想在运行时将索引值添加到 CommantParameter,因此当我转到 Function onCommand 时,我将确切地知道我需要从 ListView 中获取控件的 row[i]。
所以我的问题是,如何在运行时将 ListView.Rows[i] 的索引动态添加到按钮的 CommmandArgument 中?
提前致谢。
最佳答案
查看 API
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listviewcommandeventargs.aspx
ListViewCommandEventArgs 项有一个索引,IE 它已经在参数中可用
ListViewDataItem dataItem = (ListViewDataItem)e.Item;
int i = dataItem.DisplayIndex;
但是从这里您将可以访问这些控件
e.Item.FindConrol("controlName");
如果您以不同的方式调用该方法,您可以通过 ItemDataBound 事件分配索引
void MyListView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
((Button)e.Item.FindControl("WisdomButton")).CommandArgument = ((ListViewDataItem)e.Item).DisplayIndex;
}
或者尝试这样的方式来咯咯笑
<asp:Button runat="server" CommandArgument='<%# DisplayIndex %>'/>
// OR
<asp:Button runat="server" CommandArgument='<%# NextIndex() %>'/>
关于c# - 如何在运行时传递 ListView 的行索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/692120/