如果根据文本内容的长度显示要编辑的文本,如何在网格视图的asp:BoundField中动态切换文本框和文本区域。
答案 0 :(得分:1)
我们可以通过css样式来完成这个,
aspx页面:
<style type="text/css">
#input
{
-moz-appearance: textfield;
-webkit-appearance: textfield;
background-color: white;
background-color: -moz-field;
border: 1px solid darkgray;
font: -moz-field;
font: -webkit-small-control;
width: 250px;
}
</style>
<body>
<div>
<asp:GridView ID="gv" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:TemplateField HeaderText="Text">
<ItemTemplate>
<div id="input" contenteditable></div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</body>
aspx.cs页面:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}
public void BindGrid()
{
List<string> lst = new List<string>();
lst.Add("Name1");
lst.Add("Name2");
gv.DataSource = lst;
gv.DataBind();
}
否则onkeypress事件我们可以检查文本框字符串的长度,如果长度超过一行,那么我们可以更改css。希望这对你有所帮助。
答案 1 :(得分:0)
在gridview的数据绑定事件上,检查内容的长度,然后将asp:textbox的TextMode更改为textarea的multiline和textbox的singleine