将数据添加到bootstrap模式

时间:2016-01-22 03:52:46

标签: javascript twitter-bootstrap

我在这里有一个bootstrap模式的问题,所以在我的应用程序的后端我从SQL中提取数据,我调用这样的JS函数:

ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowPopup",
                   "MailLanguageChange('" + Description + "','" + TextResult + "');", true);

JS看起来像这样:

function MailLanguageChange(Name, Text) {
        $('#MainContent_NewMailTemplate').modal('show');

        document.getElementById("Upper_txtDesc").value = Name;
        document.getElementById("TextEditorTextArea").innerHTML = Text;
    }

所以firebug遇到了这个函数的断点,所以我确信调用函数确实有效,但是问题就出现了,JS正在尝试将这些数据应用到模态上,然后加载模态的所有元素。

但是当我将这个模态用于多个purpuses时...无论如何都要写下来,“在显示模态之前不要做任何事情”?

 $('#MainContent_NewMailTemplate').modal('show');

正如文档所说,它在模态实际显示之前返回给调用者......我怎么能通过它?

编辑

这就是我也尝试过的方式

function MailLanguageChange(Name, Text) {

        $('#MainContent_NewMailTemplate').modal('show');

        $("#MainContent_NewMailTemplate").on('shown.bs.modal', function () {
            document.getElementById("Upper_txtDesc").value = Name;
            document.getElementById("TextEditorTextArea").innerHTML = Text;
        });
    }

结论:

使用@Guruprasad Rao提供的全局变量逻辑 我最后只是使用

$(document).ready(function () {
    document.getElementById("Upper_txtDesc").value = name;
    document.getElementById("TextEditorTextArea").innerHTML = text;
});

谢谢

1 个答案:

答案 0 :(得分:1)

使用twitter-bootstrap's shown.bs.modal方法,如下所示:

$("#yourmodalid").on('shown.bs.modal',function(){
   //Do whatever you want here
});

还有其他几个 events 来研究modal

enter image description here

<强>更新

看到你首先显示modal然后你正在注册该事件..所以我建议你在下面的步骤。

  
      
  • 在js页面的顶部声明2个全局变量。
  •   

<强>实施例

var name,text;
  
      
  • function MailLanguageChange
  • 中分配值   

<强>实施例

function MailLanguageChange(Name, Text) {
    name=Name;
    text=Text;
    $('#MainContent_NewMailTemplate').modal('show');
}
  
      
  • shown.bs.modal事件保留在上述function
  • 之外的某处   

<强>实施例

$("#MainContent_NewMailTemplate").on('shown.bs.modal', function () {
     document.getElementById("Upper_txtDesc").value = name;
     document.getElementById("TextEditorTextArea").innerHTML = text;
});