2013-08-30 7 views
0

как использовать контроль вид сетки в методе ниже

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

один вопрос, как вы можете получить доступ к управлению asp.net (GridView1) в статической функции? –

+0

Да, я знаю, что мы не можем использовать, но могли бы вы посоветовать мне, как обновить сетку с обновленной записью. – user2717258

+0

вы можете использовать панель управления обновлением, которая обновит сетку, не обновляя страницу .. если вам нужен код smple..let me know .. я буду обновлять на aswer –

ответ

0

Вы не можете напрямую обращаться к веб-элементам управления в статическом методе. Вместо этого вы можете использовать другие плагины HTML-таблиц, такие как DataTable.

EDIT

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); 
     } 
+0

у вас есть какой-нибудь пример кода? – user2717258

+0

обновил образец кода, например, при нажатии кнопки поиска сетка обновит данные без обновления страницы ... –

0

Я не совсем уверен, что вы имеете в виду, но я предполагаю, что вы пытаетесь обновить GridView из JavaScript, правильно? Вы можете использовать небольшой трюк.

Для вашего ASPX страницы пут DIV и кнопку внутри него: (примечание: комплект ClientIDMode кнопки к статическому электричеству, если вы используете .NET 4.0+)

<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(); 

Резюме:

  1. Вам нужна кнопка, которая невидима, но может вызвать обратную передачу (если вы используете UpdatePanel, поместите это с помощью кнопки внутри шаблона содержимого UpdatePanel, чтобы обратная передача была вызвана этой конкретной областью.

  2. Чтобы обновить gridview с помощью JavaScript, просто вызовите событие click скрытой кнопки.

+0

, где я разместил сетку? – user2717258

+0

не имеет значения. Где угодно на странице APSX. Или - если вы используете UpdatePanel, тогда вы должны поместить мой код и GridView в шаблон контента. –

Смежные вопросы