javascript/jqueryを使用して動的に作成されたコントロールのクライアントIDを取得する方法を教えてください。Jquery/Javascript:動的に生成されるコントロールのClientIDを取得する方法
私はdatepickerを持っており、値が変更された場合、textchangedイベントをトリガーしていくつかの機能を実行する必要があります。以下は、日付ピッカーテストのために
protected void Page_Init(object sender, EventArgs e)
{
LoadControls(reportDefId);
}
protected void LoadControls(int reportDefId)
{
HtmlTableCell cellDate = new HtmlTableCell();
TextBox dte = new TextBox();
dte.ToolTip = "If you need to filter for blank dates, please select date range 1/1/1753-1/1/1753";
dte.Attributes.Add("type", "text");
dte.Attributes.Add("class", "datepicker");
if (rfl.fieldDisplayName.Contains("Start") || rfl.fieldDisplayName.Contains("End"))
dte.ID = "dte" + id.ToString();
else
dte.ID = "dteFr" + id.ToString();
dte.Style["Width"] = "85px";
dte.Style["Height"] = "24px";
dte.TextChanged += new EventHandler(dte_TextChanged);
cellDate.Controls.Add(dte);
}
が、私はハードそれがtextchnagedイベントを発生かどうかを確認するためのClientID「MainContent_dteFr1002」のコード化されている動的に生成されたテキストボックスのため
function BindControlEvents() {
$(".datepicker").datepicker({
format: 'mm/dd/yyyy',
autoclose: true,
todayBtn: 'linked'
}).on('changeDate', function (ev) {
__doPostBack('MainContent_dteFr1002', '');
}).on('clearDate', function (ev) {
//to do
});
}
//Initial bind
$(document).ready(function() {
BindControlEvents();
});
//Re-bind for callbacks
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() {
BindControlEvents();
});
コードビハインド私のスクリプトです。します。ですから、cliendid値を動的に渡す必要があります。これは、cliendIDにdteが含まれています。
私は検索しましたが、適切な答えが見つかりませんでした。
助けてください! ありがとう
上記の行が正常に動作します。しかし、ChangeDateで_doPostBackを与えると、私は変更するたびに別のdatepickerを追加しますが、代わりに日付をクリアします。私が_doPostBackをコメントアウトすると、datepickerは正常に動作します。しかし、私はポストバックを行い、textchangedメソッドを呼び出す必要があります。コードビハインドメソッドを呼び出す良い方法は何ですか?どのように私は変更できますか? – crony
私はちょっと混乱していて、あなたのコードのコードをもっと見る必要があります。 _doPostBackを呼び出すたびに、新しい日付ピッカーが作成されます。あなたが望むその行動ですか?あなたのPageLoad()にあるコードの中にdatepickerを作成するコードスニペットですか?これがPost.IsPostBackのポストバックであるかどうかのコードをチェックインできます。ポストバックの場合は、条件付きで別のdatepickerを作成しないと言うこともできます。ページの読み込み側で、次のようなコードでポストバックパラメータを取得することもできます。string parameter = Request ["EVENTARGUMENT"]; –
はい、新しい日付ピッカーが新たに作成されます。私はその行動を必要としません。私はdatepickerのテキストボックスコントロールのコードを追加しました。見つけて、お勧めしてください!ありがとう – crony