1

我有一个 asp.net gridview 包裹在一个更新面板上,其中包含两个字段:

<asp:TemplateField Visible="False">
  <ItemTemplate>
    <asp:Label ID="lblID" runat="server" style="display:none" 
      Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>' Width=".05px">
    </asp:Label>
  </ItemTemplate>
  <ItemStyle Width="1%" />
  <ControlStyle Width="0px" />
  <HeaderStyle Width="0px" />
</asp:TemplateField>

<asp:TemplateField HeaderText="#">
  <ItemTemplate>
  <asp:HyperLink ID="hlSortOrder" runat="server" CssClass="hlDialog" NavigateUrl="javascript:return false;"
    Text='<%# DataBinder.Eval(Container, "DataItem.SortOrder") %>'>
  </asp:HyperLink>
  </ItemTemplate>
  <FooterStyle HorizontalAlign="Center" />
  <HeaderStyle HorizontalAlign="Center" />
  <ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>

第二个字段是一个超链接字段,当我单击它时,我可以打开 jquery ui 对话框。我这样称呼它:

$(".hlDialog").click(function () {
    $('#dialog').dialog({
        draggable: true,
        modal: true,
        height: 600,
        width: 800,
        title: "Log file",
        open: function (type, data) {
            $(this).parent().appendTo("form");
        }
    });
});

但是,这很好用......是否可以将我的第一个 gridview(从上面)的值传递lblID给 jquery 对话框?现在我只是拉出一个空的对话屏幕。我希望最终能够获取 lblID 的值(来自上面的网格视图),然后提取一些数据以显示在我的对话框中。

这可能吗?

4

4 回答 4

0

试穿这个尺寸。我在您现有的功能中添加了一些内容,因为我不完全确定您想要在哪里获得什么价值。

<% /* this field could be a simpler <asp:BoundField> or something similar... */ %>
<asp:TemplateField Visible="False">
  <ItemTemplate>
    <asp:Label ID="lblID" runat="server" style="display:none" 
      Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>' Width=".05px">
    </asp:Label>
  </ItemTemplate>
  <ItemStyle Width="1%" />
  <ControlStyle Width="0px" />
  <HeaderStyle Width="0px" />
</asp:TemplateField>

$(".hlDialog").click(function () {
    var that = $(this),
        thatValue = that.val(),
        lblIDValue = that.prev.text(), //should be accurate depending on what else is happening on the page
        aux = 0;

    $('#dialog').dialog({
        draggable: true,
        modal: true,
        height: 600,
        width: 800,
        title: "Log file",
        open: function (type, data) {
            var el = $('<div>').addClass('hiMom').text( thatValue + ' ' + lblIDValue );
            $(this).prepend(el).parent().appendTo("form");
        }
    });
});
于 2012-06-25T20:42:39.317 回答
0

您的模态窗口应该可以从调用页面访问 DOM。您应该能够在模态窗口上使用 jquery 从调用页面检索 lblID。

于 2012-06-25T20:30:07.637 回答
0

据我所知,您可以在点击事件中执行以下操作:

$(".hlDialog").click(function () {
    // First parent() is for "td", next for "tr"
    var lblID = $(this).parent().parent().find("span").html();
 .
 .
 .
});

希望这可以帮助!!

于 2012-06-25T20:31:43.550 回答
0

查看http://blog.nemikor.com/2009/04/08/basic-usage-of-the-jquery-ui-dialog/上的教程

主要是:

$(document).ready(function() {
    var $dialog = $('<div></div>')
        .html('This dialog will show every time!')
        .dialog({
            autoOpen: false,
            title: 'Basic Dialog'
        });

    $('#opener').click(function() {
        $dialog.dialog('open');
        // prevent the default action, e.g., following a link
        return false;
    });
});

这将允许您在对话框中设置 HTML。使用 DOM 获取您的 lblID。

并使用来自另一个答案的值,您可以通过以下方式在 DOM 中获得它:

var lblID = $(this).parent().parent().find("span").html();

然后将该值用于您的 .html

.html(lblID)

示例在这里:http ://example.nemikor.com/basic-usage-of-the-jquery-ui-dialog/

于 2012-06-25T20:32:30.710 回答