c# gridview щелчок строки

Я подозреваю, что это уже упоминалось в некоторых ответах, но я немного изменю это, чтобы получить полный рабочий ответ (проще найти и использовать).

  1. Перейти к: https://nodejs.org/en/download/. Установите nodejs.
  2. Установите http-сервер, запустив команду из командной строки npm install -g http-server.
  3. Перейдите в рабочий каталог, где index.html / yoursome.html находится.
  4. Запустите свой http-сервер, выполнив команду http-server -c-1

Откройте веб-браузер до http://localhost:8080 или http://localhost:8080/yoursome.html - в зависимости от вашего имени файла html.

19
задан niton 15 April 2015 в 16:54
поделиться

7 ответов

У меня есть решение.

Это - то, что я сделал:

if(e.Row.RowType == DataControlRowType.DataRow)
{
    e.Row.Attributes["onClick"] = "location.href='view.aspx?id=" + DataBinder.Eval(e.Row.DataItem, "id") + "'";
}

я загнал предыдущий код в событии RowDataBound.

19
ответ дан 30 November 2019 в 03:03
поделиться
protected void gvSearch_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        string abc = ((GridView)sender).DataKeys[e.Row.RowIndex].Value.ToString();
        e.Row.Attributes["onClick"] = "location.href='Default.aspx?id=" + abc + "'";    
    }
}
3
ответ дан 30 November 2019 в 03:03
поделиться

Ваш идентификатор может быть связан с элементом данных, отображенным в gridview?

Раз так можно использовать e. Строка. DataItem и состав исполнителей это к любому типу это.

0
ответ дан 30 November 2019 в 03:03
поделиться

щелчок строки в сетке просматривает перенаправление к другим работам страницы

    protected void gvSearch_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
             string abc = ((GridView)sender).DataKeys[e.Row.RowIndex].Value.ToString();
             e.Row.Attributes["onClick"] = "location.href='Default.aspx?id=" + abc + "'";
        }
    }

, абсолютно прекрасным

0
ответ дан 30 November 2019 в 03:03
поделиться

Для этого можно использовать событие RowCommand представления сетки. В вашей кнопке / ссылке, где вы хотите установить щелчок, установите CommandName и CommandArgument, которые вы можете принять в параметре EventArgs метода события.

0
ответ дан 30 November 2019 в 03:03
поделиться

Martijn,

Вот еще один пример с изящной подсветкой строк и курсором в стиле href:

protected void gvSearch_RowDataBound(object sender, GridViewRowEventArgs e)
{
  if (e.Row.RowType == DataControlRowType.DataRow)
  {
    e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#ceedfc'");
    e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=''");
    e.Row.Attributes.Add("style", "cursor:pointer;");
    e.Row.Attributes.Add("onclick", "location='patron_detail.aspx?id=" + e.Row.Cells[0].Text + "'");
  }
}

Приведенный выше код работает в .NET 3.5. Однако вы не можете установить для своего столбца id значение Visible = "false", потому что вы получите пустое значение строки запроса для вашего ключа id:

<asp:GridView ID="gvSearch" runat="server" OnRowDataBound="gvSearch_RowDataBound" AutoGenerateColumns="false">
  <Columns>
    <asp:BoundField DataField="id" Visible="false" />
    <asp:BoundField DataField="first_name" HeaderText="First" />
    <asp:BoundField DataField="last_name" HeaderText="Last" />
    <asp:BoundField DataField="email" HeaderText="Email" />
    <asp:BoundField DataField="state_name" HeaderText="State" />
  </Columns>
</asp:GridView>

Поэтому вместо этого замените первый столбец на это:

<asp:BoundField DataField="id" ItemStyle-CssClass="hide" />

Добавьте этот css в вверху страницы:

<head>
  <style type="text/css">
    .hide{
      display:none;
    }
  </style>
<head>

Но чтобы скрыть первую ячейку строки заголовка, добавьте это в свой gvSearch_RowDataBound () в коде программной части:

if (e.Row.RowType == DataControlRowType.Header)
{
  e.Row.Cells[0].CssClass = "hide";
}

Очевидно, вы могли бы скрыть столбец id и в коде программной части, но это приведет к тому, что в вашей разметке будет больше текста, чем в классе css:

e.Row.Cells[0].Attributes.Add("style", "display:none;");
e.Row.Attributes.Add("style", "cursor:pointer;");
20
ответ дан 30 November 2019 в 03:03
поделиться
protected void gvSearch_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
        string abc = ((GridView)sender).DataKeys[e.Row.RowIndex].Value.ToString(); 
        e.Row.Attributes["onClick"] = "location.href='Default.aspx?id=" + abc + "'";     
    } 
} 
1
ответ дан 30 November 2019 в 03:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: