[英]Asp.Net C#: Add GridView in jQuery Dialog
我正在尝试创建一个函数来动态显示DataGridView,让我们编写代码:
HtmlGenericControl div = new HtmlGenericControl("div");
div.ID = Guid.NewGuid().ToString();
GridView grid = new GridView();
grid.Attributes.Add("runat", "server");
foreach (GridColumnTemplate grdColumnTemplate in parameters.ColumnsTemplate)
{
BoundField boundField = new BoundField();
boundField.DataField = grdColumnTemplate.ValueFieldName;
boundField.HeaderText = grdColumnTemplate.HeaderText;
grid.Columns.Add(boundField);
}
grid.DataSource = parameters.DataSource;
div.Controls.Add(grid);
Controls.Add(div);
String cmd = "<script language=JavaScript> ShowGrid('{0}'); </script>\n";
Page.ClientScript.RegisterStartupScript(this.GetType(), "ShowGrid",string.Format(cmd,div.ID));
这是ShowGrid函数:
function ShowGrid(idDiv) {
var modal = $(idDiv).dialog({
dialogClass: "no-close",
modal: true,
width: 500,
resizable: false,
draggable: false
});
modal.parent().appendTo($("form:first"));
}
但是,当执行代码时,我有一个错误,说要在“ runat = server”容器内输入gridview。 我尝试通过代码来做到这一点,但没有成功。
请帮我!
您可以通过以下方式实现它:
<a href="javascript:loadGridOnClick()">Load</a>
<div class="Modal">
<asp:GridView id="grdExample" runat="server">
// Grid Logic
</asp:GridView>
</div>
我们具有前端结构,现在可以填充网格:
function loadGridOnClick() {
$.ajax({
url: '<%= Page.ResolveUrl("~/Services/GetGridForSample.ashx") %>',
type: 'POST',
data { ... } // If we have any data to populate our Grid.
success: function () {
// Our return object.
}
});
}
通过Ajax调用服务后,您只需编写后端代码,即可使用正确的数据填充Grid。 然后,您只需使用DataSource
和DataBind
。 另一种方法是仅拥有我们的<div class="Modal">
,然后您可以返回Object
的集合并将其放置在自己的结构中。
那就是我要采取的方法,否则您可能会遇到Postback
和状态信息的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.