代码之家  ›  专栏  ›  技术社区  ›  ScottC

发生异步回发时,TextBox的Text属性为空

  •  0
  • ScottC  · 技术社区  · 6 年前

    我看了很多帖子,觉得自己快疯了,因为我尝试过的东西似乎都不管用。我只想单击一个按钮并检索文本框的值。

    我正在将web表单用于网站。master所以不确定这是否会影响问题,但我看到的大多数解决方案似乎都没有使用网站。主人

    我没有绑定文本框,最初我只是想创建一个联系人表单。

    <%@ Page Title="About" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="About.aspx.cs" Inherits="Blackburn_Pulse.About" %>
    
    <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
        <script>$("#menuAbout").addClass("navi-active");</script>
    
        <div class="contentBody">
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:TextBox ID="tb_Test" EnableViewState="true" CausesValidation="false" runat="server"></asp:TextBox>
                    <asp:LinkButton ID="btn_Test" runat="server" OnClick="btn_Test_Click" Text="send test" />
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="btn_Test" EventName="click" />
                </Triggers>
            </asp:UpdatePanel>
        </div>
    </asp:Content>
    
    public partial class About : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.Page.Master.EnableViewState = true;
    
            if (IsPostBack)
            {
                var test_var = tb_Test.Text; //returning empty
            }
        }
    
        protected void btn_Test_Click(object sender, EventArgs e)
        {
            var test_var = tb_Test.Text; //returning empty
        }
    }
    

    更新: 地点主人反恐精英

        public partial class SiteMaster : MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                BindCategories();
            }
        }
    
        protected void BindCategories()
        {
            Categories Categories = new Categories();
            rpt_categories.DataSource = Categories.Get_Categories();
            rpt_categories.DataBind();
        }
    
        protected void lb_newsCat_Command1(object sender, CommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "naviTo":
                    //Redirect user to selected category
                    Response.Redirect("~/" + e.CommandArgument.ToString());
                    break;
            }
        }
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   ScottC    6 年前

    我正在将PHP网站转换为ASP。net网站。原来我在搜索框上还有一个HTML表单标记,我还没有开始处理它。

    不幸的是,如果您有另一个表单标记,调试器不会抛出错误,因此任何其他花费数小时搜索的人,请仔细检查您没有超过1个表单标记!

    在我的网站中。主人aspx文件,我有一个搜索框,如下所示:

    <form method="post" action="?">
        <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
        <button class="btn btn-outline-primary my-2 my-sm-0" type="submit">Search</button>
    </form>
    

    一旦我拿出额外的表单标签,一切都很好。