基于TextBox.Text更改EmptyDataTemplate中的Label.Text

时间:2015-09-29 17:07:53

标签: c# asp.net

我正在尝试以编程方式更改EmptyDataTemplate中的标签,该标签基于单击按钮时输入到文本框中的文本。我的if(!IsPostBack)用于在初始页面加载时设置文本。但是,单击“搜索”按钮时,新值将无法正确分配。

标记

<table runat="server">
        <tr>
            <td>
                <asp:Label ID="Label3" runat="server" Text="Project #: "></asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtProjectID" runat="server"></asp:TextBox>
            </td>
        </tr>

    </table>
    <br />
    <asp:Button ID="btnSearch" runat="server" Text="Search" />
    <br />
    <br />

        <asp:ListView ID="ListView1" runat="server" DataKeyNames="BookingFormID" DataSourceID="BFListSQL">
            <EmptyDataTemplate>
                <table runat="server" style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;">
                    <tr>
                        <td>No Booking Forms found for Project # <asp:Label ID="lblProjectID" runat="server" />.</td>
                    </tr>
                    <tr></tr>
                    <tr>
                        <td><asp:LinkButton ID="btnNewBookingForm" runat="server" CommandName="NewInsert" Text="New Booking Form" /></td>
                    </tr>
                </table>
            </EmptyDataTemplate>
....

背后的代码

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Label lblProjectID = (Label)ListView1.Controls[0].Controls[0].FindControl("lblProjectID");
                lblProjectID.Text = "#####";
            }
        }

        protected void btnSearch_Click(object sender, EventArgs e)
        {
            Label lblProjectID = (Label)ListView1.Controls[0].Controls[0].FindControl("lblProjectID");
            if (!String.IsNullOrEmpty(txtProjectID.Text))
            {
                lblProjectID.Text = txtProjectID.Text;
            }
            else
            {
                lblProjectID.Text = "#####";
            }
        }

在初始页面加载时,它使用'#####'呈现来自!IsPostBack就好了。

在“搜索”文本框中输入内容并单击“搜索”按钮后,呈现的label.text为null或为空,因为没有任何内容显示我应该在哪里获取输入到“搜索”框中的文本或“# ####”。

我会更好地为按钮分配命令并将代码设置为而不是ButtonID_Click()吗?

对于它的价值,如果输入了有效的Project#,ListView表就可以了。

1 个答案:

答案 0 :(得分:0)

我觉得自己像个假人。我的buttom标记中缺少background-color