我有一个GridView,它从数据库中提取数据并自动填充其字段。
<asp:GridView ID="gvData" runat="server" CellPadding="4"
ForeColor="#333333" GridLines="None" AllowPaging="True" AutoGenerateDeleteButton="True"
AutoGenerateEditButton="True" DataSourceID="DS" PageSize="1" CssClass="q">
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" Height="20" CssClass="q"/>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" Height="15px" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
<asp:SqlDataSource ID="DS" runat="server"></asp:SqlDataSource>
一些字段太长了。有没有办法缩短文本长度并插入一个按钮,在点击该按钮后弹出一个新窗口显示完整文本?GridView还生成编辑和删除按钮。按下编辑按钮会给我一些小的文本框。如何绕过它们,使用弹出窗口来编辑同一个按钮?
我想到的另一种方法是创建带滚动条的文本区域。我知道如何手动添加带滚动条的字段,但它被创建为标签,所以当我按编辑时,该字段无法编辑。而且,这是手动的,但我的GridView是自动填充的。如何自动填充具有带滚动条的大型文本区域?
任何帮助将不胜感激!谢谢!
好的,我找到了缩短文本的解决方案:
protected void gvData_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
ViewState["OrigData"] = e.Row.Cells[i].Text;
if (e.Row.Cells[i].Text.Length >= 30)
{
e.Row.Cells[i].Text = e.Row.Cells[i].Text.Substring(0, 30) + "...";
e.Row.Cells[i].ToolTip = ViewState["OrigData"].ToString();
}
}
}
}
然后添加 OnRowDataBound="gvData_RowDataBound":
<asp:GridView ID="gvData" runat="server" CellPadding="4" ForeColor="#333333"
GridLines="None" AllowPaging="True" AutoGenerateDeleteButton="True"
AutoGenerateEditButton="True" DataSourceID="DS" PageSize="1"
OnRowDataBound="gvData_RowDataBound">
这将把长度裁剪为30个字符,并在工具提示中显示完整的文本。