簡體   English   中英

ModalPopUp作為用戶控件ASP.NET C#

[英]ModalPopUp as User Control ASP.NET C#

我試圖建立一個ModalPopUp作為控件。 它具有以下控件:

  • TextBox篩選器的占位符
  • Button -搜索按鈕
  • Button -取消按鈕
  • GridView顯示結果

搜索畫面

<ajax:toolkitscriptmanager id="searchPopUp" runat="server"></ajax:toolkitscriptmanager> 
<asp:Panel
    BackColor="White"
    ID="searchPanel"
    CssClass="modalPopup"
    runat="server"
    Style="display: table">

    <div class="myContainer">
        <uc1:ScreenSearch
            runat="server"
            ID="mySearch" />

        <asp:Button ID="btnToHide" runat="server" Text="Tohide" Style="display: none" />
        <asp:Button ID="btnToShow" runat="server" Text="ToShow" Style="display: none" />
    </div>
    </asp:Panel>

<ajax:ModalPopupExtender 
    ID="ModalPopUpSearch" 
    runat="server"
    TargetControlID="btnToShow"
    PopupControlID="searchPanel"
    CancelControlID="btnToHide"
    DropShadow="true"
    BackgroundCssClass="modalBackground">
</ajax:ModalPopupExtender>

后面的代碼: uc1:ScreenSearch

protected void Page_Load(object sender, EventArgs e){...}

protected void fillGridView()
        {
            myDao dao = new myDao();

            DataSet ds = new DataSet();
            ds = dao.retornarPesquisa(txtFilter.Text); //return data source
            DataTable dt = new DataTable();

            gv.DataSource = ds;
            gv.DataBind();
        }

uc1:ScreenSearch是我的控件,其中包含TextBoxButton (執行搜索以調用方法: fillGridView() )和GridView

當我嘗試執行搜索時,請單擊“綁定GridView 在我的用戶控件的GridView中獲得結果的最佳方法是什么?

您尚未發布任何代碼,因此很難說出為什么它不起作用。以下是一個工作示例,該示例顯示Bootstrap模態彈出窗口->允許用戶搜索-> 在模態彈出窗口內的 GridView顯示結果:

后面的代碼:

public class Person
{
    public string Name { get; set; }
    public string Surname { get; set; }
}

public partial class ModalPopupFromGridView : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void btnSearch_Click(object sender, EventArgs e)
    {
        //Use txtSearch.Text to lookup the data you want to bind to the GridView, mine is hardcoded for the sake of simplicity
        var p1 = new Person { Name = "Name 1", Surname = "Surname 1" };
        var p2 = new Person { Name = "Name 2", Surname = "Surname 2" };
        GridView1.DataSource = new List<Person> { p1, p2 };
        GridView1.DataBind();
        ScriptManager.RegisterStartupScript(this, this.GetType(), "myModal", "showPopup();", true);
    }
}

.ASPX:

<head runat="server">
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
    <script type="text/javascript">

        //It'svery important that showPopup() is outside of jQuery document load event
        function showPopup() {
            $('#myModal').modal('show');
        }

        $(function () {
            $(".show").click(function () {
                showPopup();
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <a href="#" class="show">Show Popup</a>
        <div id="myModal" class="modal fade">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                        <h4 class="modal-title" id="myModalLabel">Details</h4>
                    </div>
                    <div class="modal-body">
                        <asp:TextBox ID="txtSearch" runat="server">
                        </asp:TextBox><asp:Button ID="btnSearch" runat="server" Text="Search" OnClick="btnSearch_Click" />
                        <br /><br />
                        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
                            <Columns>
                                <asp:BoundField DataField="Name" HeaderText="Name" />
                                <asp:BoundField DataField="Surname" HeaderText="Surname" />
                                <asp:TemplateField HeaderText="User Details">
                                    <ItemTemplate>
                                        <a class="details" href="#" data-name='<%# Eval("Name") %>' data-surname='<%# Eval("Surname") %>'>Details</a>
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                        </asp:GridView>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
                    </div>
                </div>
            </div>
        </div>
    </form>
</body>

輸出:

在模式彈出窗口中顯示搜索表單

檢查搜索按鈕自動回發是否設置為true。 此外,由於搜索按鈕位於gridview控件內,因此您還將在gridview_itemchanged事件中獲得搜索按鈕單擊的事件。 希望能奏效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM