2017-08-28 5 views
0

テキストボックスとラベルを動的に作成していますが、JQuery経由で表示/非表示しようとしていますが、私は間違って何をしていますか?ここでJQueryを使用して動的に作成されたラベルを非表示にする

は、背後にあるコードです:

TableCell td4 = new TableCell(); 

Label l2 = new Label(); 

l2.ID = "lbSell" + dp.dSellAutoID.ToString(); 
l2.Text = Math.Round(Convert.ToDecimal(dp.dSellPrice), 2).ToString(); 
l2.Visible = false; 
td4.Controls.Add(l2); 

TextBox tb1 = new TextBox(); 

tb1.ID = "tbSell" + dp.dSellAutoID.ToString(); 
tb1.Width = 50; 
tb1.Text = Math.Round(Convert.ToDecimal(dp.dSellPrice), 2).ToString(); 
td4.Controls.Add(tb1); 
tr.Cells.Add(td4); 

そして、ここでは、JSです:

function editRow(rowID) { 
    //alert(rowID); 
    $('#' + 'lbSell' + rowID).show(); 
    $('#' + 'tbSell' + rowID).hide(); 
} 
+0

はあなたがeditRow' –

+0

editRowが動的に作成ラベル経由で呼び出され、焼成し、正しいを与えている '呼び出す私たちを見ますrowID ie: l1.Attributes.Add( "OnClick"、 "editRow(" + dp.dSellAutoID.ToString()+ ")"); – Milnelli

+0

あなたのHTMLを検査し、IDの値が何であるかチェックしてください。 –

答えて

1

あなたはマスターページを使用していますか?その場合、IDはページのレンダリング中に変更されます。それを防ぐために、あなたは

<%@ Page Title="" Language="C#" ClientIDMode="Static" MasterPageFile="~/epinet.master" %> 

をご覧下さいpageディレクティブにClientIDMode="Static"を追加することができます。https://stackoverflow.com/a/5494142/5746368

+0

ええ、マスターページを使用して.. ClientIDMode = "静的"アプローチを使用する際に欠点はありますか?または、マスターページ構造の下に座っているコントロールの前に「MAIN」というプレフィックスが付いていることを期待できますか? – Milnelli

+0

ClientIDMode = "static"を設定する際に、私は欠点を見つけません。他の人が混乱することなくJavascript/jQueryを理解/デバッグできるようにするのが好きです。 – jim1427

+0

ClientIDModeプロパティの詳細については、https://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspxを参照することもできます – jim1427

関連する問題