2017-02-02 9 views
-3

私はItemDataBoundの助けを借りてlisviewとバインディングデータを使用しています。リストビューメソッドが機能しない

問題:ラベルをクリックすると関連するデータが表示されますが、他のデータをクリックすると1番目と2番目のアイテムに関するデータが表示され、これが終了するまで続きます。

SelectedIndexChangingという方法でリストをクリアしようとしましたが、これは機能しませんでした。

これを解決するのを手伝ってください。

aspx.csコード

public string getvalue(int ID) 
{ 
Tbl_Multiple_Video_Master obj = DB.Tbl_Multiple_Video_Master.Single(p => p.VID == ID); 
if (obj.IsUrl == false) 
{ 
string Link = "<iframe id=\"paidVideo\" src=\"https://de122v0opjemw.cloudfront.net/utils/embedplayer.php?enablejsapi=1&video=" + obj.Name+"\" height=\"300\" width=\"500\"></iframe>"; 
return Link; 
} 
else 
{ 
return "<iframe id=\"cartoonVideo\" width=\"560\" height=\"315\" src=\"" + obj.Name + "\" frameborder=\"0\" allowfullscreen ></iframe>"; 
} 
} 
protected void listviedo_ItemCommand(object sender, ListViewCommandEventArgs e) 
{ 
Literal lblvedio = (Literal)e.Item.FindControl("lblvedio"); 
if (e.CommandName == "Select") 
{ 
int ID = Convert.ToInt32(e.CommandArgument); 
Database.Tbl_Multiple_Video_Master obj = DB.Tbl_Multiple_Video_Master.Single(p => p.VID == ID); 
if (obj.IsUrl == false) 
{ 
lblvedio.Visible = true; 
string Link = "<iframe id=\"paidVideo\" src=\"https://de122v0opjemw.cloudfront.net/utils/embedplayer.php?enablejsapi=1&video=" + obj.Name + "\" height=\"300\" width=\"500\"></iframe>"; 
} 
else 
{ 
lblvedio.Visible = true; 
string Link = "<iframe id=\"cartoonVideo\" width=\"560\" height=\"315\" src=\"" + obj.Name + "\" frameborder=\"0\" allowfullscreen ></iframe>"; 
} 
} 
} 
protected void listviedo_ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
Label lblid = (Label)e.Item.FindControl("lblid"); 
LinkButton linkresuume = (LinkButton)e.Item.FindControl("linkresuume"); 
int ID = Convert.ToInt32(lblid.Text); 
Database.Tbl_Multiple_Video_Master objcar = DB.Tbl_Multiple_Video_Master.Single(p => p.VID == ID); 
} 
protected void listviedo_SelectedIndexChanged(object sender, EventArgs e) 
{ 
if (listviedo.SelectedIndex > -1) 
{ 
SelectedVideo.Text = "Selected Video is : " + listviedo.SelectedValue.ToString(); 
} 
else 
{ 
SelectedVideo.Text = "Please Select a Video" + listviedo.SelectedIndex.ToString(); 
} 
} 
protected void listviedo_SelectedIndexChanging(object sender, ListViewSelectEventArgs e) 
{ 
listviedo.Items.Clear(); 
} 

protected void listviedo_ItemCommand(object sender, ListViewCommandEventArgs e) 
{ 
Literal lblvedio = (Literal)e.Item.FindControl("lblvedio"); 
if (e.CommandName == "Select") 
{ 
int ID = Convert.ToInt32(e.CommandArgument); 
Database.Tbl_Multiple_Video_Master obj = DB.Tbl_Multiple_Video_Master.Single(p => p.VID == ID); 
if (obj.IsUrl == false) 
{ 
lblvedio.Visible = true; 
string Link = "<iframe id=\"paidVideo\" src=\"https://de122v0opjemw.cloudfront.net/utils/embedplayer.php?enablejsapi=1&video=" + obj.Name + "\" height=\"300\" width=\"500\"></iframe>"; 
} 
else 
{ 
lblvedio.Visible = true; 
string Link = "<iframe id=\"cartoonVideo\" width=\"560\" height=\"315\" src=\"" + obj.Name + "\" frameborder=\"0\" allowfullscreen ></iframe>"; 
} 
} 
} 
protected void listviedo_ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
Label lblid = (Label)e.Item.FindControl("lblid"); 
LinkButton linkresuume = (LinkButton)e.Item.FindControl("linkresuume"); 
int ID = Convert.ToInt32(lblid.Text); 
Database.Tbl_Multiple_Video_Master objcar = DB.Tbl_Multiple_Video_Master.Single(p => p.VID == ID); 
} 
protected void listviedo_SelectedIndexChanged(object sender, EventArgs e) 
{ 
if (listviedo.SelectedIndex > -1) 
{ 
SelectedVideo.Text = "Selected Video is : " + listviedo.SelectedValue.ToString(); 
} 
else 
{ 
SelectedVideo.Text = "Please Select a Video" + listviedo.SelectedIndex.ToString(); 
} 
} 
protected void listviedo_SelectedIndexChanging(object sender, ListViewSelectEventArgs e) 
{ 
listviedo.Items.Clear(); 
} 

ASPXコード

<asp:ListView ID="listviedo" runat="server" 
           DataKeyNames="VideoName" 
           OnItemCommand="listviedo_ItemCommand" 
           OnItemDataBound="listviedo_ItemDataBound" 
           OnSelectedIndexChanged="listviedo_SelectedIndexChanged" 
           OnSelectedIndexChanging="listviedo_SelectedIndexChanging" > 

           <ItemTemplate> 

            <div> 
             <table> 
              <tr style="border:solid;"> 
               <td style="border:solid;"> 
                <asp:Literal ID="lblvedio" runat="server" Visible="false" Text='<%# getvalue(Convert.ToInt32(Eval("VID")))%>'></asp:Literal> 
               </td> 
              </tr> 
              <tr> 
               <td style="border:solid;"> 
                <span> 
                 <asp:LinkButton runat="server" ID="lnkname" CommandName="Select" CommandArgument='<%# Eval("VID") %>'> 
                  <asp:Label ID="lblname" runat="server" Text='<%# Eval("VideoName")%>'></asp:Label> 
                  <asp:Label ID="lblid" runat="server" Visible="false" Text='<%# Eval("VID")%>'></asp:Label> 
                 </asp:LinkButton> 
                </span> 
               </td> 
              </tr> 
             </table> 
            </div> 

           </ItemTemplate> 

        </asp:ListView> 
+0

の可能性のある重複[C#をクリアリストビュー内のすべての項目が(http://stackoverflow.com/questions/435379/c-sharp-clear-all-items-in-listview) – bxc00zzy

+1

バギーコードであります?あなたが壊れたコードを表示しないと、どのように助けを受けることになっていますか?投稿する[MCVE] – Steve

+0

それはエラーを表示していませんが、リストが明確になっていません... :( –

答えて

0

に従って、この

DataSource = null; 
DataBind(); 

を試します

C# Clear all items in ListView

+0

私はそれを試しました、私のために働いていません.. –

+0

完全なコードであなたの質問を編集します。 – bxc00zzy

+0

ここに私がしたいもののリンクhttp://stackoverflow.com/questions/41960336/getting-data -on-listview-select-event-and-setting-it-a-div-in-c-sharp –