在显示文本进行编辑时,如何根据文本内容的长度动态切换网格视图中的文本框和文本区域。
发布于 2013-05-20 17:35:55
我们可以通过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。希望这能对你有所帮助。
发布于 2013-05-21 17:05:16
在网格视图的数据绑定事件上,检查内容的长度,然后将asp:textbox的TextMode更改为多行文本区域和单行文本框
https://stackoverflow.com/questions/16644735
复制相似问题