2016-10-19 2 views
0

В настоящее время я пытаюсь загрузить gridview в соответствии со значением в раскрывающемся списке и переключателем.Невозможно связать данные на основе значения dropdownlist и значения переключателя

Однако, всякий раз, когда я добавляю код для проверки флажка или нет, gridview не загружает никаких данных.

Сначала я подумал, что это проблема с AutoPostBack, но после решения проблемы с AutoPostBack я все еще не могу получить данные на основе переключателя. Каждый раз, когда я изменяю значение раскрывающегося списка, и я меняю значение переключателя, никаких данных не появляется.

Я сейчас делаю в 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 для своего переключателя, однако событие просто не срабатывает. Вот что я пытался

ASPX

<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.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(); 
    } 
} 
Смежные вопросы