我有一个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的值(来自上面的gridview),然后拉出一些数据显示在我的对话框中。
这可能吗?
答案 0 :(得分:0)
您的模态窗口应该可以从调用页面访问DOM。您应该能够在模态窗口上使用jquery从调用页面检索lblID。
答案 1 :(得分:0)
据我所知,您可以在点击事件中执行以下操作:
$(".hlDialog").click(function () {
// First parent() is for "td", next for "tr"
var lblID = $(this).parent().parent().find("span").html();
.
.
.
});
希望这有助于!!
答案 2 :(得分: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/
答案 3 :(得分: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");
}
});
});