如何填充GridView(带分页)&单击asp按钮时在ModalPopup中显示?

时间:2013-09-27 15:43:47

标签: asp.net gridview ajaxcontroltoolkit

我是AjaxControlToolKit的初学者。我正在尝试填充GridView&单击asp按钮时在ModalPopup中显示。应在弹出窗口中的gridview中启用分页。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你可以这样做。我认为你更容易使用jQuery而不是AjaxControlToolkit来实现你的目标。您将需要安装jQuery插件,最简单的方法是在Visual Studio中使用NuGet包管理器。你将只搜索jQuery,你需要的库应该出现。然后你会想把它放在标题中(或标签后面)。

<强> JQUERY:

 <script type="text/javascript">
          function showpopup() {
                 $("#popup").dialog({
                  modal: true,
                  width: 590,
                  buttons: {
                  Ok: function () {
                  $(this).dialog("close");
                   }
                }
              });
           };
 </script>

这是将显示的弹出窗口。正如你所知,这个弹出窗口中没有gridview,但是它调用了一个函数“#popup”。这是您的gridview所在的位置。这就是我的外观如何使用一些额外的控件,如按钮和标签。

HTML标记:

 <div class="popUpStyle" title="Duplicate Deal Found!" id="popup" style="display: none">
    <asp:GridView ID="gvDealTracking" runat="server" Width="200px" AutoGenerateColumns="False">
      <Columns>
    <asp:TemplateField HeaderText="VehicleID" HeaderStyle-Wrap="false" Visible="false">
        <ItemTemplate>
         <asp:Label ID="lblDupVehicleID" runat="server" Text='<%# Bind("VehicleID") %>'></asp:Label>
        </ItemTemplate>
        <HeaderStyle Wrap="False" />
   </asp:TemplateField>
    <asp:TemplateField HeaderText="Stock #" HeaderStyle-Wrap="false">
       <ItemTemplate>
          <asp:Label ID="lblDupStockNumber" runat="server" Text='<%# Bind("StockNumber") %>'></asp:Label>
        </ItemTemplate>
     <HeaderStyle Wrap="False" />
</asp:TemplateField>
              ..... 
              ....
        </Columns>
</asp:GridView>
                <br />
 <asp:Button ID="btnUse" runat="server" UseSubmitBehavior="false" CausesValidation="false" OnClick="btnUse_Click" Text="Use"></asp:Button>
 <asp:Label ID="lblMessagePop" runat="server"></asp:Label>
          <br />
 </div>

正如你所看到的那样,网格中的网格确实附加了一个css样式(class =“popUpStyle”)。我看起来像这样..

<强> CSS:

.wm {
        color: Gray;
 }

 .popUpStyle {
    font: normal 11px auto "Trebuchet MS", Verdana;
      /*background-color: gray;*/
      color: black;
      padding: 6px;
      filter: alpha(opacity=80);
      opacity: 0.8;
 }

你想把它放在后面。然后,您可以在页面加载或任何您想要的方式中填充此gridview。我填充我的方式是它检查数据库中是否已存在“DealNumber”,如果存在,则显示此弹出窗口。我不确定你打算如何填充gridview,但是因为你说你想在页面加载时使用它,你可以使用DataTable ...类似..

c#背后的代码:

   DataTable dt = new DataTable();
   SqlDataAdapter cmdReturnExisting = new SqlDataAdapter("SELECT VehicleID, StockNumber, Dealership, FIMAST, DealDate, Buyer, GrossProfit, AmtFinanced, BankName FROM Vehicle WHERE FIMAST = '" + DealNumber + "';", conn);
     cmdReturnExisting.Fill(dt);
     gvDealTracking.DataSource = dt;
     gvDealTracking.DataBind();

你想要在你的页面加载中,但不要忘记把它放在你的按钮点击后面的代码...

Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "showpopup();", true);

在我看来,这是一个更好的方法,然后使用AjaxControlToolkit。我希望这有帮助。

答案 1 :(得分:0)

将此代码复制到您的页面,然后根据您的要求编辑Gridview。

<asp:Button ID="btnGrdPopup" runat="server" Text="Show Grid" />

        <ajaxToolkit:ConfirmButtonExtender ID="cbe" runat="server" DisplayModalPopupID="mpeConfirmBox"
            TargetControlID="btnGrdPopup">
        </ajaxToolkit:ConfirmButtonExtender>
        <ajaxToolkit:ModalPopupExtender ID="mpeConfirmBox" runat="server" PopupControlID="pnlPopup"
            TargetControlID="btnDetailPopup" CancelControlID="btnCancel" BackgroundCssClass="modalAppInfoBackground">
        </ajaxToolkit:ModalPopupExtender>




  <asp:Panel runat="server" ID="pnlPopup" Width="450" 
                    Style="display: none;">
                   <asp:Gridview runat="server" ID="gdv">
                         <%-- Your gridview inner code --%>
                   </asp:Gridview>
                  <asp:button runat="server" ID="btnCancel" Text="Cancel"> </asp:Button>
                </asp:Panel>