如何在下面的方法中使用网格视图控件
public static string ServerSideMethod()
{
strSend = "File uploaded sucessfully";
Database db = new Database();
db.Add(name);
GridView1.DataSource = db.LoadCourses();//showing error
GridView1.DataBind(); //showing error
}
return strSend;
}
我的下面脚本调用ServerSideMethod
$.ajax(
{
type: "POST",
contentType: "application/json; charset=utf-8",
url: "UploadResx.aspx/ServerSideMethod",
data: "{ sendData: 'ok' }",
success: function (result) {
alert(result.d);
}
})
请让我知道如何刷新GridView1
答案 0 :(得分:0)
您无法直接在静态方法中访问Web控件。而不是你可以使用像DataTable这样的其他HTML表插件。
修改
aspx页面
<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>
<asp:Button ID="btnsearch" runat="server" Text="SEARCH" OnClick="btnsearch_Click" />
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:GridView ID="grdjobs" runat="server" AutoGenerateColumns="false" DataKeyNames="Id" AllowPaging="true"
PageSize="10" OnPageIndexChanging="grdjobs_PageIndexChanging" GridLines="None" Width="950px" EmptyDataText="No Records Found">
<Columns>
<asp:BoundField DataField="jobid" HeaderText="JOB" ItemStyle-HorizontalAlign="Center">
<ItemStyle Width="50px"></ItemStyle>
</asp:BoundField>
<asp:BoundField DataField="summary" HeaderText="JOB SUMMARY" >
<ItemStyle Width="300px"></ItemStyle>
</asp:BoundField>
</Columns>
<RowStyle CssClass="RowStyle" />
<EmptyDataRowStyle CssClass="EmptyRowStyle" />
<PagerStyle CssClass="PagerStyle" />
<SelectedRowStyle CssClass="SelectedRowStyle" />
<HeaderStyle CssClass="HeaderStyle" />
<EditRowStyle CssClass="EditRowStyle" />
<AlternatingRowStyle CssClass="AltRowStyle" />
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnsearch" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
背后的代码
try
{
grdmyjobs.DataSource = GetMyJobs(empid); // function return dataset
grdmyjobs.DataBind();
}
catch (Exception ex)
{
Response.Redirect("error.aspx?errmsg=Error: " + ex.Message);
}
答案 1 :(得分:0)
我不确定你的意思,但我想你是在尝试用JavaScript刷新gridview,对吧?你可以使用小技巧。
在你的aspx页面中放入div和一个按钮: (注意:如果您使用的是.NET 4.0 +,请将按钮的ClientIDMode设置为静态)
<div id="triggerDiv" style="display:none;">
<asp:Button ID="triggerButton" runat="server" Text="" ClientIDMode="Static"...
<div>
在您的JavaScript中,您可以完全跳过ajax代码,只需将其命名为:
//if you use .NET framework 4.0+
$('#triggerButton').click();
//if not, use something like this
$('#triggerDiv > input[type="button"]').click();
要点:
您需要一个不可见的按钮但可以导致回发(如果您使用UpdatePanel将此按钮放在该UpdatePanel的内容模板中,那么回发将导致此特定区域。
要从JavaScript刷新gridview,只需触发隐藏按钮的click事件即可。