私は既にstackoverflowとmsdnのドキュメントでこれについて多くの研究を行っていますが、何も助けにはなりません。私は自分のasp:listview内の項目を選択して、選択したテキストを取り出して、後で使用する文字列に入れる必要があります。ここに私の.aspxのコードは次のとおりです。asp:listviewから文字列にデータを格納する
<li class="menu-item menu-item-has-children">
<a href="#" class="sf-with-ul">Undécimo</a>
<ul runat="server" id="eleventhList" class="sub-menu">
<asp:ListView ID="listViewforEleventh" runat="server" OnItemCommand="listViewforEleventh_ItemCommand">
<ItemTemplate>
<a onserverclick="linkForEleven_ServerClick" runat="server" id="linkForEleven" href="ViewSchedule.aspx"> <asp:Label ID="eleventhGroupLabel" runat="server" Text="<%#Container.DataItem %>"></asp:Label> </a>
<asp:Label runat="server" ID="dataString"></asp:Label>
</ItemTemplate>
</asp:ListView>
</ul>
</li>
私はこのようなリストビューを移入しています:
private void loadEleventh()
{
list = group.getGroupsByLevelService(11);
List<string> sublist = new List<string>();
foreach (var element in list)
sublist.Add(element.GroupName);
listViewforEleventh.DataSource = sublist;
listViewforEleventh.DataBind();
}
これは動作しますが、今、私は(テキスト)データを選択する必要があるであることsp:ListView。私はこのようにそれをやっている:私は自分のコードをデバッグするとき
protected void linkForEleven_ServerClick(object sender, EventArgs e)
{
ListViewDataItem item = listViewforEleventh.Items[listViewforEleventh.SelectedIndex];
Label c = (Label)item.FindControl("dataString");
groupName = c.Text;
}
は私が値-1を持つselectedIndexの方法で範囲の例外のうち、インデックスのエラーを得ました。これをどうすれば解決できますか?または、リストビュー項目からデータを取り出して別の方法で文字列に格納するにはどうすればよいですか?あなたのSelectedIndexChanged
イベントハンドラで
listViewforEleventh.SelectedIndexが-1の場合、選択された行がないことを意味します。アイテムテンプレートでイベントを発生させているため、行を選択せずに処理されているからです。あなたは完全にそのアンカーを削除することができますし、ちょうど "SelectedIndexChanged"リスト – Gusman