Как да добавите gridview към модален bootstrap с динамичен параметър от множество бутони

Търсих решение за показване на мрежов изглед на модален. Мрежовият изглед се показва правилно без грешка, проблемът е в неговия параметър. Осъзнавам, че gridview е процес, преди да се стартира какъвто и да е javascript. Въпреки това имам нужда да се показва, когато се щракне върху модалния бутон. Този бутон променя данните към модални и трябва да промени параметъра на sqldatasource, който също променя съдържанието на gridview.

Ето моят javascript

$(document).ready(function () {
$('#exampleModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget) //Button that triggered the modal
var ckpt = button.data('whatever')
var clss = button.data('dtclass')
var modal = $(this)
modal.find('.modal-title').text(clss)
modal.find('.modal-title2').text(ckpt)
document.getElementById('ContentPlaceHolder1_lblckpt').innerText = clss;
})})

Ето кода на клиента

<td><button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-dtclass="I010" data-whatever="Diameter">Go!</button></td>

<td><button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-dtclass="I030" data-whatever="Thickness">Go!</button></td>

Ето моят модал с мрежов изглед

<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog modal-lg" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <p id="exampleModalLabel" style="font-size:22px;">Checkpoint :<asp:Label ID="txtckpt1" runat="server" class="form-control-label modal-title" style="font-size:22px;"></asp:Label>&nbsp;~&nbsp;<label id="txtckpt2" runat="server" class="form-control-label modal-title2" style="font-size:22px;"></label></p>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
          <div class="form-group">
              <label for="txtequi" class="form-control-label">Equipment</label>
              <table>
                  <tr>
                      <td colspan="2">
                          <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BorderStyle="Solid" BorderWidth="1px" ShowHeaderWhenEmpty="true"
CellPadding="3" DataSourceID="sdtequi"
OnRowDataBound="GridView1_RowDataBound" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
    <Columns>
        <asp:ButtonField Text="Delete" ControlStyle-ForeColor="Firebrick" CommandName="Select" ItemStyle-Width="30" />
        <asp:BoundField DataField="mequid" HeaderText="Equipment" SortExpression="mequid" />
        <asp:BoundField DataField="mequnm" HeaderText="Description" SortExpression="mequnm" />
        <asp:BoundField DataField="mergdt" HeaderText="Creation Date" SortExpression="mergdt" DataFormatString="{0:dd/MM/yyyy}" />
        <asp:BoundField DataField="meusid" HeaderText="User ID" SortExpression="meusid" />
    </Columns>
</asp:GridView>
<asp:SqlDataSource ID="sdtequi" runat="server" ConnectionString="<%$ ConnectionStrings:myConnectionString %>"
ProviderName="<%$ ConnectionStrings:m3ConnectionString.ProviderName %>" SelectCommand="SELECT mequid, mequnm, mergdt, meusid FROM fcis.mechkp WHERE mecpid = ? ORDER BY mequid">
<SelectParameters>
    <asp:ControlParameter DefaultValue="" ControlID="lblckpt" Name="lblckpt" PropertyName="Text" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
                      </td>
                  </tr>
              </table>
          </div>
          <div class="form-group">
            <label for="txtckpt" class="form-control-label">LI Class</label>
              <table>
                  <tr>
                      <td><asp:TextBox runat="server" ID="txtckpt" class="form-control"></asp:TextBox></td>
                      <td><button type="button" class="btn btn-primary">Add</button></td>
                  </tr>
              </table>
          </div>
      </div>
    </div>
  </div>
</div>

Както можете да видите, зададох стойност на етикета lblckpt, след като modal е отворен (чрез javascript). След това параметърът sqldatasource е свързан към lblckpt, така че данните от мрежата да могат да се показват. Няма грешка в моя проект, освен това се опитах да кодирам твърдо параметъра и той работи както трябва. Моля, дайте ми съвет или решение.


person Saleh Safie    schedule 18.09.2018    source източник


Отговори (1)


Ако някой има решение с помощта на gridview, моля, уведомете ме. Точно сега намерих решение с помощта на AJAX aspx. Ето кода, който използвам. Харесва ми, защото тази много по-добра производителност и мога да получа данни в реално време, без да опреснявам цялата страница.

Ето го javascript

function AddTableEqui(clss){   
 var xhr = new XMLHttpRequest();
 xhr.onreadystatechange = function () {
  document.getElementById("div1").innerHTML = xhr.responseText;
  }
 xhr.open("GET", "GetEqui.aspx?clss=" + clss, true);
 xhr.send(null);
}

След това кодирам таблицата си вътре в GetEqui.aspx и връщам цялата html маркировка с помощта на response.write()

person Saleh Safie    schedule 20.09.2018