如何将动态占位符分配给Textbox?

时间:2014-02-11 16:25:55

标签: c# asp.net textbox

我知道之前要求将此问题分配给文本框,但他们没有答案,或者给定的答案对我不起作用。我有一个静态的翻译功能,我正在尝试使用它来为文本框分配一个占位符。我怎么能在aspx页面中做到这一点?

我的代码是:

    <asp:TextBox ID="search" runat="server" 
    placeholder='<%# islem.DilGetir(7) %>'>
    </asp:TextBox>

这个返回此源代码:

<input name="ctl00$search" type="text" id="ctl00_search">

4 个答案:

答案 0 :(得分:3)

您应该从页面code behind

设置此属性
search.Attributes["placeholder"] = islem.DilGetir(7)

答案 1 :(得分:2)

你可以使用ajax controll工具包文本框水印我发现它在aspx应用程序中最有用

http://www.asp.net/AjaxLibrary/AjaxControlToolkitSampleSite/TextBoxWatermark/TextBoxWatermark.aspx

 <asp:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender1" runat="server" TargetControlID ="search" WatermarkText="textthe my name" WatermarkCssClass="watermarked">
        </asp:TextBoxWatermarkExtender>

在后端

TextBoxWatermarkExtender1.WatermarkTex=islem.DilGetir(7);

答案 2 :(得分:0)

我遇到了同样的问题。确切的解决方案:将所有占位符的文本带到hiddenfield组件(用,分隔)和JS,取内部数组的隐藏文本,并用jQuery或JS分配给输入文本的占位符attr。

答案 3 :(得分:0)

此代码用于multiselectbox选择的js和常规selectbox。

public void SelectFill(DataTable dtResult, HtmlSelect htmlSelect, string placeHolder, string textColumn, string valueColumn, string value)
    {
        htmlSelect.DataSource = dtResult;
        htmlSelect.DataTextField = textColumn;
        htmlSelect.DataValueField = valueColumn;
        htmlSelect.DataBind();

        bool isMultiple = false;
        foreach (var item in htmlSelect.Attributes.Keys)
        {
            if (item.ToString() == "multiple")
            {
                isMultiple = true;
            }
        }

        if (isMultiple)
        {
            htmlSelect.Attributes["data-placeholder"] = placeHolder;
        }
        else
        {
            ListItem placeHolderItem = new ListItem(placeHolder, "-1");//create placeholder option for non multible selectbox
            placeHolderItem.Attributes.Add("disabled", "disabled");
            htmlSelect.Items.Insert(0, placeHolderItem);
            htmlSelect.Items[0].Selected = true;
        }
    }