Как сделать гиперссылку в gridview без поля данных?

Jinmo Chong спросил: 14 ноября 2017 в 05:22 в: c#

Разработка в: c # asp.net веб-формах 4.5

Я просмотрел много постов, и все они сделали гиперссылку с либо полем данных в нем, с помощью datatextfield () или подобным ..., либо вызвали eval from backend. Я не делал ничего из этого, поэтому я пытался делать все, что мог, но это не сработало. CommandField, HyperLinkeField, HyperLink, ... все не работало.

Суть в том, что данные получаются нормально, но я не могу сделать это гиперссылкой. Разве невозможно получить гиперссылку таким образом?

Я пытаюсь сделать гиперссылку на gridview. Дело в том, что столбец, который я пытаюсь сделать гиперссылку, не получает данные из поля данных.

Он получает это с помощью метода onRowDataBound gridview, как-то так ..

<asp:GridView runat="server" ID="someGrid" CellPadding="10" 
    DataKeyNames="idx" AutoGenerateColumns="false"
    selectMethod="someGrid_GetData" ItemType="someTable"
    updateMethod="someGrid_UpdateItem" AutoGenerateEditButton="true"
    deleteMethod="someGrid_DeleteItem" AutoGenerateDeleteButton="true"
    onRowDataBound="someGrid_RowDataBound">
    <Columns>
        <asp:BoundField DataField="thing1" HeaderText="thing1" />
        <asp:BoundField DataField="thing2" HeaderText="thing2"/>
        <asp:DynamicField DataField="poDate" DataFormatString="{0:d}" />
        <asp:BoundField HeaderText="vendor" />
        <asp:CommandField HeaderText="sku" ShowSelectButton="true" SelectText="{0}" ButtonType="Link"/>
    </Columns>
</asp:GridView>

и на фоне кода это выглядит так ..

    protected void soGrid_RowDataBound(object sender, GridViewRowEventArgs e)
    {  
        using (soAction soa = new soAction())
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string s = e.Row.Cells[2].Text;
                string thin1 = soa.get_thin1(s);
                e.Row.Cells[4].Text = thin1;                string thin2 = soa.get_thin2(s);
                e.Row.Cells[5].Text = thin2;
            }
        }
    }

Спасибо!

edit: Может быть, я не совсем понял, в чем здесь проблема .. Обычно в примерах используется свойство dataTextField в gridview, но я не могу использовать свойство dataTextField, потому что я Я связываю данные в зависимости от модели, представленной впоследствии. Я делаю это, потому что я хотел установить itemType в someTable, так что я могу использовать метод update и deleteMethod из asp.net.

0 ответов