В моем веб-проекте я загружаю файл xls.Я создаю сетку с нужными мне данными и загружаю.После того, как я открою Excel, мне нужно заблокировать столбец.
Мой код выглядит следующим образом:
private DataTable tableExcel;
public ActionResult returnExcel(HttpResponseBase response, string name)
{
var grid = new GridView();
grid.DataSource = tableExcel;
grid.DataBind();
GridViewRow HeaderGridRow = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Insert);
TableCell HeaderCell = new TableCell();
HeaderCell = new TableCell();
HeaderCell.Text = h.text;
HeaderCell.ColumnSpan = colunesSpan;
HeaderCell.Font.Bold = h.negreta;
HeaderCell.HorizontalAlign = h.aliniacio;
HeaderGridRow.Cells.Add(HeaderCell);
HeaderGrid.Controls[0].Controls.AddAt(0, HeaderGridRow);
response.ClearContent();
response.Buffer = true;
response.AddHeader("content-disposition", $"attachment; filename={name}.xls");
response.ContentType = "application/ms-excel";
response.Charset = "";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
grid.RenderControl(htw);
response.Output.Write(sw.ToString());
response.Flush();
response.End();
}
Код работает правильно, единственное, что мне нужно, это уметьреализовать опцию блокировки или замораживания столбца.
grid.Columns[0].Frozen = true;
grid.Rows[0].CssClass = "locked";
Я нашел эти решения, но они не работают для GridView.