我知道之前要求将此问题分配给文本框,但他们没有答案,或者给定的答案对我不起作用。我有一个静态的翻译功能,我正在尝试使用它来为文本框分配一个占位符。我怎么能在aspx页面中做到这一点?
我的代码是:
<asp:TextBox ID="search" runat="server"
placeholder='<%# islem.DilGetir(7) %>'>
</asp:TextBox>
这个返回此源代码:
<input name="ctl00$search" type="text" id="ctl00_search">
答案 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;
}
}