Rachna0309 Ответов: 4

Динамическое добавление ссылки в datagridview


У меня есть заполненный datagridview, который имеет 7 столбцов.Теперь я хочу добавить ссылку на 1 столбец(то есть номер).После нажатия на эту ссылку он отобразит подробную информацию,основанную на этом номере.
Пожалуйста, может any1 помогите мне?

4 Ответов

Рейтинг:
2

Sanjeev Alamuri

Dim lnk As New DataGridViewLinkColumn()
       DataGridView1.Columns.Add(lnk)
       lnk.HeaderText = "Link Data"
       lnk.Name = "Link"
       lnk.Text = "Link"
       lnk.UseColumnTextForLinkValue = True



И используйте DataKeyNames(индекс PrimaryKey) и значение столбца, чтобы получить данные для отображения результатов.


http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewlinkcolumn.aspx[^]


Рейтинг:
1

Sanjeev Alamuri

В режиме проектирования ur щелкните правой кнопкой мыши на gridview и нажмите кнопку Изменить столбцы, а затем добавить столбец. здесь вы можете найти DataGridViewLinkColumn. выберите и примените, а затем ОК.
и добавьте событие CellClick в сетку из панели свойств. Там после кода, код выглядит следующим образом.

private void DgvView_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (e.ColumnIndex == 0)//if ur link columnIndex (complain_no ColumnIndex) is zero 
                {
                  // Display your data here
                }
            } 
            catch(Exception e)
            {
            }
         }



// та же процедура в vb.net и еще. так что конвертируйся в vb.net код.


Rachna0309

Спасибо за помощь...

Рейтинг:
1

Rachna0309

Я уже пробовал это сделать.Но я не хочу добавлять новую колонку.У меня есть complain_no,дата,имя и т. д. в виде столбцов.Моя задача состоит в том, что я хочу добавить ссылку на столбец complain_no, который после нажатия будет отображать детали, связанные с этим номером.


Member 13375990

@Рахна IAM также ищут одного и того же запроса

Рейтинг:
0

Sanjeev Alamuri

<asp:GridView ID="GridView1" runat="server" EnableViewState="false" AutoGenerateColumns="False"

    ShowFooter="True" DataKeyNames="VendorId" AllowPaging="True" CellPadding="3"

    PageSize="5" BackColor="White" BorderColor="White" BorderStyle="Ridge" CellSpacing="1"

    Width="100%" BorderWidth="2px" GridLines="None" AllowSorting="true"  OnRowDataBound="gv_RowDataBound">
    <Columns>
        <asp:TemplateField HeaderText="Edit" ShowHeader="False">
            <ItemTemplate>
                <asp:LinkButton ID="complain_no" runat="server" CausesValidation="False" CommandName="complain_no"

                    Text="complain_no"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="date" SortExpression="VendorFName">

            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Bind("date") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="name" SortExpression="VendorLName">
            <ItemTemplate>
                <asp:Label ID="name" runat="server" Text='<%# Bind("name") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        
    </Columns>
    <RowStyle BackColor="#DEDFDE" ForeColor="Black" />
    <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
    <PagerStyle ForeColor="Black" HorizontalAlign="Right" BackColor="#C6C3C6" />
    <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" />
</asp:GridView>



protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
    {
       // Use debug and see the column which u got. 
       // check the column. if its linkbutton column then
       // do your code here.

    }

}


Rachna0309

Я работаю над приложением windows, так что этот код не будет работать..

Sanjeev Alamuri

хорошо, но постарайтесь упомянуть все детали.