【问题标题】:Passing bound values to a Javascript function called in a GridView将绑定值传递给在 GridView 中调用的 Javascript 函数
【发布时间】:2016-06-16 00:56:50
【问题描述】:

这个 javascript 工作到一定程度,因为它会根据需要打开弹出窗口,但它们是空的!传递函数的两个缺失值的语法是什么?这两个值需要从 gridview 中获取(lblEVENT_DATE 和 BoundField,DataField 为 DETAILS)。正如您将看到的,该函数打开一个模式弹出窗口,并由 gridview 中的输入按钮调用。 函数中的第三个必需值是硬编码的。

    function OpenPopup(datetime, text, mode) {
        if (mode == 'track') {   
            $('#lblDateTime').text(datetime);
            $('#lblTrackingNotes').text(text);
            $("#divTrackingNotes").dialog({ title: "Tracking Notes", width: 700, modal: true, });
        }
        else {
            $('#lblRCAComments').text(text);
            $("#divRCAComments").dialog({ title: "Comments", width: 700, modal: true, });
        }
    }


<asp:GridView ID="GridRootCause" ClientIDMode="Static" CssClass="dataTable fullWidth spaceAfter2" runat="server" AutoGenerateColumns="False" DataKeyNames="ROOT_CAUSE_IDENTIFIER,RECORD_IDENTIFIER">
<Columns>
    <asp:BoundField DataField="RECORD_IDENTIFIER" ItemStyle-CssClass="hiddenColumn" HeaderStyle-CssClass="hiddenColumn" />      
    <asp:TemplateField HeaderText="Event Date">
        <ItemTemplate>
            <asp:Label ID="lblEVENT_DATE" runat="server" Text='<%# CDate(Eval("EVENT_DATE")).ToString("ddd") & " " & Eval("EVENT_DATE")%>' />
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Details">
        <ItemTemplate>
            <asp:Label Visible="false" Wrap="true" ID="lblDetails" runat="server" />
            <input type="button" class="innerButton buttonBlue" id="btnTrackingNotes" onclick="javascript: OpenPopup('','','track');" Visible="false" runat="server" value="Tracking Notes" /> 
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Comments" HeaderStyle-CssClass="width150">                                
        <ItemTemplate> 
            <input type="button" class="innerButton buttonBlue" id="btnComments" onclick="javascript: OpenPopup('','','comm');" Visible="false" runat="server" value="Comments" />                                  
        </ItemTemplate>
    </asp:TemplateField>
</Columns>
</asp:GridView>

【问题讨论】:

    标签: javascript jquery asp.net gridview


    【解决方案1】:

    如果数据字段是EVENT_DATEDETAILS,可以这样设置onclick事件处理器:

    onclick='<%# string.Format("OpenPopup({0}{1:ddd}{0}, {0}{2}{0}, {0}track{0});", (char)39, Eval("EVENT_DATE"), Eval("DETAILS")) %>'
    

    此代码的一个棘手部分是在格式字符串中插入单引号,同时避免与外部引号冲突。这就是我在 C# 中使用 (char)39 或在 VB.NET 中使用 chr(39) 的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      相关资源
      最近更新 更多