2016-10-19 6 views
0

現在、ドロップダウンリストとラジオボタンの値に従って、グリッドビューをロードしようとしています。ドロップダウンリストの値とラジオボタンの値に基づいてデータをバインドできません

ただし、ラジオボタンがオンかどうかをチェックするコードを追加するたびに、gridviewはデータをロードしません。

最初は、AutoPostBackの問題を解決した後、問題を引き起こしているAutoPostBackだと思っていましたが、まだラジオボタンに基づいてデータを取得できませんでした。ドロップダウンリストの値を変更してラジオボタンの値を変更するたびに、データは表示されません。

I現在、C#でやっていると私はデータテーブルとしての私のGridViewを使用しています(jQueryプラグイン)

ここに私のサンプルコードがあります

ASPX

<script src="Scripts/jquery-1.9.1.js"></script> 
    <script src="Content/DataTables-1.10.12/media/js/jquery.dataTables.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $(".gvv").prepend($("<thead></thead>").append($(".gvv").find("tr:first"))).dataTable(); 

      $(document).on("dblclick", ".gvv tbody tr", function() { 
       var $this = $(this); 
       var row = $this.closest("tr"); 
       row.find('td:eq(1)'); 
       var courseCode = row.find('td:first').text(); 

      }); 
     }) 

     function onPageLoad() { 
      $(".gvv").prepend($("<thead></thead>").append($(".gvv").find("tr:first"))).dataTable(); 

      $(document).on("dblclick", ".gvv tbody tr", function() { 
       var $this = $(this); 
       var row = $this.closest("tr"); 
       row.find('td:eq(1)'); 
       var courseCode = row.find('td:first').text(); 
      }); 

     } 

    </script> 

<div class="row"> 
      <div class="col-lg-1"> 
      </div> 

      <div class="form-group"> 
       <asp:Label ID="lblESTt" CssClass="col-lg-2 control-label" runat="server" Text="Test display: "></asp:Label> 
       <div class="col-lg-3"> 
        <asp:DropDownList ID="ddlTest" CssClass="form-control input-lg" runat="server" OnSelectedIndexChanged="ddlTest_SelectedIndexChanged" AutoPostBack="true"> 
        </asp:DropDownList> 
       </div> 

      </div> 
     </div> 

     <div class="row" style="margin-top: 4%;"> 
      <div class="col-lg-5"> 
      </div> 

      <div> 
       <div class="btn-group" data-toggle="buttons"> 
        <asp:RadioButton ID="currentOption" runat="server" Text="Current" CssClass="btn btn-primary active btn-lg" /> 
        <asp:RadioButton ID="pastOption" runat="server" Text="Past" CssClass="btn btn-primary btn-lg" /> 
       </div> 
      </div> 
     </div> 

     <div class="row" style="margin-top: 2%;"> 

      <div class="col-lg-1"> 
      </div> 

      <div class="col-lg-10"> 
       <asp:GridView ID="gridView1" runat="server" CssClass="table table-striped table-bordered dataTable no-footer hover gvv" AutoGenerateColumns="False"> 
        <Columns> 
         <asp:BoundField DataField="testA" /> 
         <asp:BoundField DataField="testB" /> 
         <asp:BoundField DataField="testC" /> 
        </Columns> 
       </asp:GridView> 
      </div> 
     </div> 

ASPX.CS

protected void ddlTest_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      if (currentOption.Checked) 
      { 
       ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "script", "onPageLoad();", true); 
       loadCurrentData(); 
      } 
      else 
      { 
       ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "script", "onPageLoad();", true); 
       loadPastData(); 
      } 
     } 

     protected void loadCurrentData() 
     { 
      gridView1.DataSource = retrieveBAL.retrieveCurrent(ddlTest.SelectedValue, DateTime.Now.Year); 
      gridView1.DataBind(); 

     } 

     protected void loadPastData() 
     { 
      gridView1.DataSource = retrieveBAL.retrievePast(ddlTest.SelectedValue, DateTime.Now.Year); 
      gridView1.DataBind(); 

     } 

更新

ラジオボタンのoncheckedchangeイベントを作成しようとしましたが、イベントが発生しません。ここで私は

<div class="btn-group" data-toggle="buttons"> 
       <asp:RadioButton ID="currentOption" runat="server" Text="Current" Checked="true" CssClass="btn btn-primary active btn-lg" GroupName="currentPastOption" OnCheckedChanged="currentPastOption_CheckedChanged" AutoPostBack="true"/> 
       <asp:RadioButton ID="pastOption" runat="server" Text="Past" CssClass="btn btn-primary btn-lg" GroupName="currentPastOption" OnCheckedChanged="currentPastOption_CheckedChanged" AutoPostBack="true"/> 
      </div> 

ASPX

を試してみたものだASPX.CS

protected void currentPastOption_CheckedChanged(Object sender, EventArgs e) 
     { 
      if (currentOption.Checked) 
      { 
       loadCurrentData(); 
      } 
      else if (pastOption.Checked) 
      { 
       loadPastData(); 
      } 

     } 
+0

あなたは、ドロップダウンやラジオボタンの変更イベントに書く必要があります。 –

+0

@DipakThokeコードの背後にある?またはjquery? – Alvin

+0

http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onchange pleseこれに続いて –

答えて

0

ラジオボタンgroup.Thereのコードの下に、私はdata-toggle="buttons"を削除して試してみて、それが正常に動作します。

ASPX:

 <div class="btn-group"> 
      <asp:RadioButton ID="currentOption" runat="server" CssClass="btn btn-primary active btn-lg" Text="Current" GroupName="timeSelector" OnCheckedChanged="timeSelector_CheckedChanged" AutoPostBack="true" /> 
      <asp:RadioButton ID="pastOption" runat="server" CssClass="btn btn-primary active btn-lg" Text="Past" GroupName="timeSelector" OnCheckedChanged="timeSelector_CheckedChanged" AutoPostBack="true"/> 
     </div> 

ASPX.cs

protected void timeSelector_CheckedChanged(object sender, EventArgs e) 
{ 
    if (currentOption.Checked) 
    {    
     loadCurrentData(); 
    } 
    else 
    { 
     loadPastData(); 
    } 
} 
関連する問題