Добавьте LinkButton в строку промежуточного итога gridview - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь добавить кнопку ссылки с URL в строку промежуточных итогов сетки. Я использую приведенный ниже код и не могу добавить URL.

Может ли кто-нибудь представить предложения о том, как это можно сделать?

Обновление 1:

    private void AddTotalRow(string labelText, string value)
    {
        GridViewRow row = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Normal);
        row.BackColor = ColorTranslator.FromHtml("#F9F9F9");
        row.Cells.AddRange(new TableCell[3] { new TableCell{ Text = labelText, HorizontalAlign = HorizontalAlign.Right },
     new TableCell{ Text = value, HorizontalAlign = HorizontalAlign.Right },
     HyperLinkCell(value, "http://www.google.com") });
    }

    protected  TableCell HyperLinkCell(string text, string url)
    {
        TableCell cell = new TableCell();
        HyperLink link = new HyperLink();
        try
        {
            link.Text = text;
            link.Font.Underline = true;
            link.Target = "_blank";
            link.NavigateUrl = url;
            link.Attributes.Add("style", "color:Black;");
            cell.Controls.Add(link);
        }
        catch (Exception ex)
        {
            throw ex;
        }
        return cell;
    }

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Вы хотите добавить новые ячейки в таблицу. Но вы также пытаетесь добавить LinkButton в коллекцию TableCell.

Также при создании новой кнопки LinkButton вы устанавливаете Text = AddHyperLink. Метод AddHyperLink возвращает объект HyperLink, который, очевидно, нельзя присвоить Text, поскольку это строковый тип.

Также нельзя добавить LinkButton в коллекцию TableCell.

Вам необходимо изменить код следующим образом.

private void AddTotalRow(string labelText, string value)
{
     GridViewRow row = new GridViewRow(0,0, DataControlwRowType.DataRow, DataControlRowState.Normal);
     row.BackColor = ColorTranslator.FromHtml("#F9F9F9");
     row.Cells.AddRange(new TableCell[4] { new TableCell(),
         new TableCell{ Text = labelText, HorizontalAlign = HorizontalAlign.Right }.
         new TableCell{ Text = value, HorizontalAlign = HorizontalAlign.Right),
         //Calling HyperLinkCell method which will return a TableCell with HyperLink in it.
         HyperLinkCell(value, "http://www.google.com")
        });

    gvData.Rows.Add(row);
 }

 protected TableCell (string text, string url)
 {
     //Create new Cell
     TableCell cell = new TableCell();
    //Create new HyperLink.
     HyperLink link = new HyperLink();
     try
     {
         link.Text = text;
         link.Font.UnderLine = true;
         link.Target = "_blank";
         link.NavigationUrl = url;
         link.Attributes.Add("style", "color:Black;");
         //Add hyperlink to the cell.
         cell.Controls.Add(link);
     }
     catch(Exception ex)
     {
     }
     //Return Cell with HyperLink.
     return cell;
 }

Это устранит ошибку, а также даст вам правильный способ добавить ячейку с гиперссылкой в ​​gridviewrow.

0 голосов
/ 10 мая 2018

попробуйте следующее:

protected HyperLink AddHyperLink(string cell, string strURL)
{
    HyperLink h1 = new HyperLink();
    TableCell cells = new TableCell();
    try
    {
        h1.Text = cell;
        h1.Font.Underline = true;
        h1.Target = "_blank";
        h1.NavigateUrl = strURL;
        h1.Attributes.Add("style", "color:black");
        cells.Controls.Add(h1);

    }
    catch(Exception ex)
    {

    }
    return h1;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...