Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从链接打开窗口(模式或其他),并从代码隐藏中加载数据_Javascript_C#_Jquery_Asp.net_Webforms - Fatal编程技术网

Javascript 从链接打开窗口(模式或其他),并从代码隐藏中加载数据

Javascript 从链接打开窗口(模式或其他),并从代码隐藏中加载数据,javascript,c#,jquery,asp.net,webforms,Javascript,C#,Jquery,Asp.net,Webforms,所以我有这样的想法: protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[8] { new DataColumn

所以我有这样的想法:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            DataTable dt = new DataTable();
            dt.Columns.AddRange(new DataColumn[8] 
            { 
                new DataColumn("Foto",typeof(string)),
                //more columns
            });

            List<Funcion> fun = Festival.Instancia.ListaFunciones;
            List<Espectaculo> esp = Festival.Instancia.ListaEspectaculos;
            List<Sala> sala = Festival.Instancia.ListaSalas;

            foreach (Funcion f in fun)
            {
                string nom = f.Espectaculo;
                string fec = f.Fecha.Day.ToString() + "/" + f.Fecha.Month.ToString();
                string hor = f.HoraIni.TimeOfDay.ToString();
                string sal = f.Sala;
                Espectaculo es = Festival.Instancia.BuscarEspectaculo(nom);
                Sala s = Festival.Instancia.BuscarSala(f.Sala);
                string com = es.Cnia;
                string pais = es.Pais;
                string dir = s.DirSala;
                string foto = es.Foto;

                dt.Rows.Add(foto, nom, fec, hor, sal, dir, com, pais);
                }
                GridView1.DataSource = dt;
                GridView1.DataBind();
}}
…以及显示它的标记。我只需要在gridview上显示其中的一些列,在标记中还有一个链接按钮。我们的想法是打开一个新窗口,或者使用所有这些数据(如详细信息视图)自动生成一个模态。问题是,我不能单独编写每个窗口,因为用户可以添加到上面的列表中,所以这些窗口必须在运行时生成。使用Javascript/jQuery时,到目前为止,我只能显示网格中已经存在的数据,而不能将其隐藏在视图中并显示在模式中。。。我希望能够在服务器端做到这一点

不知道我是否清楚

编辑:

下面是我使用的客户端脚本的标记:

<script type="text/javascript">
$(document).on("click", "[id*=lnkDetalles]", function () {
    $("#foto").html($(".Foto", $(this).closest("tr")).html());
    $("#espectaculo").html($(".Espectaculo", $(this).closest("tr")).html());
   //more columns
    $("#detalles").dialog({
        title: "Detalles",
        buttons: {
            Cerrar: function () {
                $(this).dialog('close');
            }
        },
        modal: true
    });
    return false;
});
</script>

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

   <h1 runat="server" id="mensaje"></h1>



<asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White"
runat="server" AutoGenerateColumns="false" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
<Columns>
    <asp:BoundField DataField="Foto" HeaderText="Foto" ItemStyle-CssClass="Foto" HeaderStyle-CssClass="Foto"/>
    <asp:BoundField DataField="Espectaculo" ItemStyle-CssClass="Espectaculo" HeaderText="Espectaculo" HeaderStyle-CssClass="Espectáculo"/>
//more columns
    <asp:TemplateField>
        <ItemTemplate>
            <asp:LinkButton Text="Detalles" ID="lnkDetalles" runat="server" />
        </ItemTemplate>
    </asp:TemplateField>
</Columns>

这很好,但我不想在GridView中显示每个字段,并且仍然能够在模式窗口中使用数据,比如隐藏列,但仍能在详细信息视图中显示它。

将希望显示在模式中的任何内容放在detalles中


那你有什么问题?它怎么会不像预期的那样工作呢?你肯定在试图用一种方法完成很多事情。。还有这些行中到底发生了什么GridView1.DataSource=dt;GridView1.1数据绑定;您正在绑定与代码格式不符的外观too@DJKRAZEGridView1.DataSource=dt;GridView1.1数据绑定;这是如何从代码隐藏中将DataTable绑定到GridView的。我可以使用jQuery在模态windo中显示数据,但只能显示GridView中已经存在且可见的数据。我希望能够调用datatable上的一些字段来显示它们,而不必在GridView上显示它们。我知道Mason,但看看他是如何做到的。。在foreach循环中。。这才是最重要的。。如果有8个以上的值,我希望绑定位于foreach循环的外侧,那么该如何引用该值而不是原始值呢?另外,如果我这样做,我如何避免在模态窗口上显示它?你说的避免在模态窗口上显示它是什么意思?您确实希望GridView显示在模式窗口中,对吗?很抱歉,我没有将此标记为之前已回答的,我确信我已标记。我想迟做总比不做强。
<div id="detalles" style="display: none">
<span id="foto"></span>
Espectaculo:<span id="espectaculo"></span>
<br />
Fecha:<span id="fecha"></span>
<br />
Hora:<span id="hora"></span>
<br />
Sala:<span id="sala"></span>
<br />
Direccion:<span id="dir"></span>
<br />
Compañía:<span id="cnia"></span>
<br />
Pais:<span id="pais"></span>
<br />
</div>
</asp:Content>
<div id="detalles" style="display: none">
    Espectaculo: <asp:Label id="EspectaculoLbl" runat="server" />
</div>
EspectaculoLbl.Text = "Hola, mundo!"; //instead of setting it to hardcoded string, load it from the database