2016-12-14 13 views
0

私はアヤックスModalPopupExtender内でこのような機能を持って動作しません。追加CSSは

private void BindListBox() 
{ 
    var obj; 
    // some code to bind obj 
    ListItem x = new ListItem(obj); 
    x.Attributes.Add("class", "headerStyle"); 
    lstListBox1.Items.Add(x); 
} 

私は、ブートストラップ日付ピッカーを初期化するコードをOnPreRenderイベント内でこの機能を置きます。何らかの理由で、私はコードを実行する際OnPreRender

protected override void OnPreRender(EventArgs e) 
{ 
    base.OnPreRender(e); 

    String script = "$(document).ready(function() {$('#" + txtDate.ClientID + "').datepicker({format: 'dd-mm-yyyy',autoclose: true});});"; 
    ScriptManager.RegisterStartupScript(base.Page, base.Page.GetType(), String.Format("jQuery_{0}", txtDate.ClientID), script, true);   

    BindListBox(); 
} 

内の日付ピッカーを初期化する必要があり、リストボックスの項目のマークアップはheaderStyleクラス属性で生成されていません。それはテキストと値を持ちますが、クラス属性はありません。

ポストバック時に属性が失われることはありますが、クラス属性を追加した後はポストバックがないと思います。 ModalPopupExtenderの私をPage_Loadは空であり、そしてポップを呼び出すASPXの私をPage_Loadにのみ、このコードを持っています

protected void Page_Load(object sender, EventArgs e) 
    { 
     Page.Header.DataBind(); 
     if (!IsPostBack) 
     {     
      ModalPopupExtenderForm.Show(); 
     } 
    } 

私はどこに問題があるか分かりません。

ASPX Page_LoadまたはモーダルポップアップPage_Loadで関数を呼び出してみましたが、変更はありませんでした。

アドバイスをしてください。

+0

このコードを入力してください:if(!IsPostBack) { ModalPopupExtenderForm.Show(); } BindListBox();の後} OnPreRenderでそれが動作するかどうかを確認してください。 – CodingYoshi

+0

こんにちは、お返事ありがとうございます。残念ながら、それは私のためには機能しません。私は下に私の答えを掲載するつもりです。 –

答えて

0

その結果、根本原因を突き止めることができません。 ASPXライフサイクルのいくつかの部分が私のCSSで混乱しているようで、どの部分がうんざりしているのか分かりません。私はこのために退屈な回避策を行う必要があります。

1)リストボックスがデータソースにバインドされるたびに、ループアイテムがヘッダーの場合は、文字列配列にプッシュします。

2)リストボックスの中にループが完了すると、ViewStateの

3に文字列配列を保存するには)をPage_Load

4の最後に呼び出される関数を作成します)機能は、すべてを取得します文字列配列ViewState内のヘッダーを削除し、Attributes.Add()を実行します。

これは賢明な解決策ではありませんが、少なくとも私には当てはまります。