在通过Javascript插入或附加的telerik文本框上回发后,Textbox不会保留值或丢失值

时间:2013-01-17 16:13:47

标签: javascript asp.net c#-4.0 textbox telerik

我的radTextBox值有问题,在回发后会删除通过JavaScript插入的值,但是通过c#插入的值就在那里。我从radgrid获取值并将它们插入到文本框中。

情景:

1:通过JavaScript插入或追加值 2:通过c#方法插入或追加值,触发回发

文本框的Html代码:

<telerik:RadTextBox ID="rtxtToEmail" runat="server" Width="300px" Skin="Office2007"
                            TextMode="MultiLine" ViewStateMode="Enabled">
                        </telerik:RadTextBox>

调用JavaScript函数的Button的Html代码:

<telerik:RadButton ID="rdbtnTo" runat="server" Skin="Office2007" Width="68px" Text="Selected" OnClientClicked="ToSelected" AutoPostBack="false">
                    </telerik:RadButton>   

Javascript代码:

function ToSelected(sender, args) {
                         var grid = $find("<%=rgWOAssignedType.ClientID %>");
                        var DataItem = grid.get_masterTableView().get_dataItems()[grid._selectedIndexes];
                        var keyValues = DataItem.getDataKeyValue("Email");
                        //alert(keyValues); return false;

                        if (keyValues != "") {
                            document.getElementById("<%= rtxtToEmail.ClientID %>").value +=
                             keyValues + ";"
                        }
                        return false;
                    }

C#代码按钮点击事件触发回发:

protected void rbtnToClient_Click(object sender, EventArgs e)
        {
            try
            {
                #region Fill To CLient Email

                if (ViewState["ClientEmail"] != null)
                {
                    if (!string.IsNullOrWhiteSpace(ViewState["ClientEmail"].ToString()))
                    {
                        rtxtToEmail.Text += ViewState["ClientEmail"].ToString() + ";";
                    }
                }

                #endregion
            }
            catch (Exception ex)
            {
                try { throw new WTLIB.WTException(ex); }
                catch (WTLIB.WTException eX) { eX.WriteToEventLog(); eX.MessageError(Page); }
            }
        }

1 个答案:

答案 0 :(得分:1)

由于您使用的是服务器控件,因此您还必须使用提供的javascript API,否则控件将无法正常工作。

  

get_textBoxValue(),set_textBoxValue()   串   获取或设置用户输入文本的值。如果输入控件包含错误,则不会将其指定为输入控件的值。