2016-12-08 13 views
1

vb.netクラスオブジェクトからデータを取得するグリッドビューがあります。このGridViewの内部(現在は)私はlblMessageのテストは、JSONのデータに基づいて変更されている必要があるので....AJAXを使用してJSONデータに基づいてGridview内にネストされたラベルテキストを設定します

<asp:GridView ID="gv1" runat="server" AutoGenerateColumns="False" CssClass="grid3" > 
 
    <Columns> 
 
     <asp:BoundField DataField="Column1" HeaderText="Account Number" />      
 
     <asp:BoundField DataField="Column2" HeaderText="Name" /> 
 
     <asp:BoundField DataField="Column3" HeaderText="Status" /> 
 
     <asp:TemplateField HeaderText="Discount Program"> 
 
      <ItemTemplate> 
 
       <asp:HiddenField runat="server" ID="hiddenField1" /> 
 
       <asp:Label ID="lblMessage" class="message" runat="server" Text=""></asp:Label> 
 
      </ItemTemplate> 
 
     </asp:TemplateField> 
 
    </Columns> 
 
</asp:GridView>

として、ラベルコントロールを持っているということですTempleteFieldオブジェクトはAJAXを介して呼び出されます。 JSONデータは、グリッドビューを生成するために使用されるクラスオブジェクトとは別のデータソースです。それは次のようになります。

{ 
    "00": 
    { 
     "Account": "1111", 
     "Status": "Y", 
     "Message": "Some Message Goes Here" 
    }, 
    "01": 
    { 
     "Account": "1111", 
     "Status": "N", 
     "Message": "" 
    } 
} 

私は、GridViewのは、多くの理由のためにバインドされているクラスを編集することはできませんので、私はと呼ばれる「メッセージ」の値にGridViewのラベルのテキストを変更するためにjQueryを使用する必要がありますJSONオブジェクトのKey( "00"、 "01")がラベルの横にネストされた隠しフィールドの値と一致するロード時のJSONオブジェクトから取得します。隠しフィールドの値は、RowDataBoundイベントの残りのグリッドビューと共にコードビハインドで設定されます。ここにjQueryの/アヤックスこれまで..

<script language="javascript" type="text/javascript"> 
 
     window.onload = function() { 
 
      var accountNumber = "123456"; 
 
      $.ajax({ 
 
       type: "POST", 
 
       contentType: "application/json", 
 
       url: "Http://MyURL", 
 
       data: accountNumber, 
 
       success: function (data) { 
 
        //Some Code Here 
 
       } 
 
      }); 
 
     }; 
 
    </script>

私はここからの損失のビットでよ。どんな提案も感謝しています。

答えて

0

我々は最初のRowDataBoundイベントの背後にあるコードでJSONオブジェクトのキー値と一致するように、代わりに隠しフィールドの値を、ラベルオブジェクトののCssClassを設定

それを働きました。次に、jQueryの経由スパンとクラスを見つけることによってlabel.text値を設定します。

$.ajax({ 
 
\t type: "POST", 
 
\t contentType: "application/json", 
 
\t url: "http://MyURL", 
 
\t data: accountNumber, 
 
\t success: function (data) { 
 
\t \t if (data) { 
 
\t \t \t var parseData = JSON.parse(data) 
 
\t \t \t var table = $('.grid3'); 
 
\t \t \t if (table !== null && table !== undefined) { 
 
\t \t \t \t $.each(parseData, function (key, val) { 
 
           var labelObject = table.find('span[class="' + key + "]'); 
 
\t \t \t \t \t var message = val.Message;    
 
\t \t \t \t \t if (labelObject !== null && labelObject !== undefined) { 
 
\t \t \t \t \t \t labelObject.html(message); 
 
\t \t \t \t \t } 
 
\t \t \t \t }); 
 
\t \t \t } 
 
\t \t } 
 
\t },

と成功!

関連する問題