У меня есть 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 автоматически заполняется. Как можно автоматически заполнять большие поля текстовыми областями с полосами прокрутки?
Любая помощь будет принята с благодарностью! Спасибо!
Хорошо, я нашел решение для сокращения текста:
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 символов и отображает полный текст во всплывающей подсказке.