无法将文本放在asp.net的输入框中

时间:2019-05-07 06:17:26

标签: c# html asp.net

我试图使输入框使用c#在asp.net中显示一些文本,但是在运行后面的代码后,输入框中什么都没有显示。 ui是RadNumericTextBox uiDistance。在课堂上,我把this.uiDistance.Text =“ 123”;但是在网页上运行代码之后。我看不到uiDistance文本框中放置了“ 123”。我该如何解决?

这是我的aspx UsageControl2SubControl1.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UsageControl2SubControl1.ascx.cs" Inherits="WebControls.UsageControl2SubControl1" %>
<asp:HiddenField ID="uiRemoved" Value="false" runat="server" />
<asp:HiddenField ID="uiID" runat="server" />
<div class="form-group">    

    <div class="col-md-2 customColumnPadding">
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <telerik:RadTextBox ID="uiToLocation" runat="server" Width="100%" AutoPostBack="true"
                    OnTextChanged="uiToLocation_Leave" EmptyMessage="<%$ Resources:ResourceHKEx,Arrive_To %>" />
            </ContentTemplate>
        </asp:UpdatePanel>

    </div>

    <div class="col-md-2 customColumnPadding" id="uiColumnDistance" runat="server">
        <telerik:RadNumericTextBox ID="uiDistance" runat="server" Width="100%" MinValue="0" NumberFormat-DecimalDigits="2" EmptyMessage="<%$ Resources:Resource,Distance %>" />
    </div>

</div>
<div class="hr-line-dashed"></div>

这是我后面的代码:UsageControl2SubControl1.ascx.cs

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;

namespace WebControls
{
    public partial class UsageControl2SubControl1 : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Convert.ToBoolean(uiRemoved.Value))
            {
                this.Visible = false;
            }
        }

        protected void uiAdd_Click(object sender, Telerik.Web.UI.ImageButtonClickEventArgs e)
        {

        }

        protected void uiRemove_Click(object sender, Telerik.Web.UI.ImageButtonClickEventArgs e)
        {

        }

        protected void RadComboBoxProduct_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)
        {

        }

        protected void uiAdd_Click1(object sender, ImageClickEventArgs e)
        {


        }

        protected void uiRemove_Click1(object sender, ImageClickEventArgs e)
        {

        }

        protected void uiToLocation_Leave(object sender, EventArgs e)
        {


            this.uiDistance.Text = "123";

        }
    }// end class
}// end namespace 

4 个答案:

答案 0 :(得分:1)

只需一点点更新您的aspx代码

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>

<div class="form-group">
    <div class="col-md-2 customColumnPadding">           
         <telerik:RadTextBox ID="uiToLocation" runat="server" Width="100%" AutoPostBack="true"
                    OnTextChanged="uiToLocation_Leave" EmptyMessage="<%$ Resources:ResourceHKEx,Arrive_To %>" />
    </div>

    <div class="col-md-2 customColumnPadding" id="uiColumnDistance" runat="server">
        <telerik:RadNumericTextBox ID="uiDistance" runat="server" Width="100%" MinValue="0" NumberFormat-DecimalDigits="2" EmptyMessage="<%$ Resources:Resource,Distance %>" />
    </div>

</div>
  </ContentTemplate>
        </asp:UpdatePanel>

由于您的文本框仅位于更新面板中,因此在回发时仅部分更新了该部分,因此您也需要将RadNumericTextBox放在更新面板中。

希望这会起作用。

答案 1 :(得分:0)

仅当您从uiToLocation文本框中跳出时,当前代码才有效。

如果要在页面加载时显示它,只需将代码移至Page_Load事件而不是uiToLocation_Leave

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Convert.ToBoolean(uiRemoved.Value))
            {
                this.Visible = false;
            }
            this.uiDistance.Text = "123"; // it will assign when page loads.
        }

如果要在页面加载时仅加载一次,请使用IsPostaback,请参见下文。

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Convert.ToBoolean(uiRemoved.Value))
            {
                this.Visible = false;
            }

            if (!IsPostBack)
            {
                this.uiDistance.Text = "123"; // it will assign only once when page loads.
            }
        }

答案 2 :(得分:0)

您使用了错误的属性。使用Value而不是Text

protected void uiToLocation_Leave(object sender, EventArgs e)
{
   this.uiDistance.Value = "123";
}

与往常一样,请检查文档。参见:second parameter

答案 3 :(得分:0)

似乎您使用错误的属性将值分配给telerik文本框。

对于默认的aspx文本框控件,将.Value属性用作.Text属性

this.uiDistance.Value= "123"