当根据文本内容的长度显示文本进行编辑时,如何在网格视图的 asp:BoundField 中动态切换文本框和文本区域。
问问题
351 次
2 回答
1
我们可以通过 css 风格做到这一点,
页面:
<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。希望这对您有所帮助。
于 2013-05-20T09:35:55.480 回答
0
在 gridview 的数据绑定事件上,检查内容的长度,然后将 asp:textbox 的 TextMode 更改为 textarea 的 multiline 和 textbox 的 singleine
于 2013-05-21T09:05:16.017 回答