2016-04-05 29 views
0

私は既に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イベントハンドラで

+0

listViewforEleventh.SelectedIndexが-1の場合、選択された行がないことを意味します。アイテムテンプレートでイベントを発生させているため、行を選択せず​​に処理されているからです。あなたは完全にそのアンカーを削除することができますし、ちょうど "SelectedIndexChanged"リスト – Gusman

答えて

0

、次の操作を行います。もちろん

string valueToSave = YourListBox.SelectedValue.ToString(); 

、あなたが実際にYourListbox.SelectedValueの値が存在することが順にListBoxで項目を選択していることを確認する必要があります。これはこれを一度行う方法の一例に過ぎません。もちろん、この値をどのように使いたいかについての詳細はわかりません。

+0

からフックします。つまり、私はselectedItemChangeのonitemcommandを変更する必要がありますか? –

+0

'OnItemCommand'の代わりに、あなたの.'aspx'ファイルに' SelectedIndexChanged = listViewforEleventh_ItemCommand'を試してみてください。 – ic3man7019

+0

もし私がちょうどそれを行うなら、私はinvalidOperationExceptionを受け取るので、私は取得したい値を指定するためにdataKeyNamesが必要になります。私は今、それを行う方法の一般的なアイデアを持っています..ありがと...もし私が再び助けが必要ならば、ごめんね。 –

関連する問題