Получить идентификатор строки при нажатии кнопки - PullRequest
0 голосов
/ 16 мая 2018

Мне нужно получить идентификатор строки из базы данных нажатием кнопки.

Это мой код c #:

protected void ddlBC_SelectedIndexChanged(object sender, EventArgs e)
{
    LogicTableAdapters.getLvLKarTableAdapter getKar = new LogicTableAdapters.getLvLKarTableAdapter();

    DataTable dtKar = getKar.getLvLKar(ddlBC.SelectedValue);

    DataTable dt = new DataTable();
    dt.Columns.AddRange(new DataColumn[2]
    { 
        new DataColumn("CharName", typeof(string)),                
        new DataColumn("LevelID", typeof(int))
    });

    foreach (DataRow dr in dtKar.Rows)
    {                     
        dt.Rows.Add(dr["CharName"].ToString(), dr["LevelID"].ToString());
    }

    gvKar.DataSource = dt;
    gvKar.DataBind();
}

protected void btnButton_Click(object sender, EventArgs e)
{

}

Это динамический GridView, который заполняется процедурой, когда элементв ddl выбрано:

<asp:GridView ID="gvKar" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" AutoGenerateColumns="False" DataKeyNames="LevelID" OnRowDataBound="gvKarakteristike_RowDataBound">
    <AlternatingRowStyle BackColor="White" />
    <Columns>
        <asp:TemplateField HeaderText="Kar">
            <ItemTemplate>
                <asp:Label ID="Kar" runat="server" Width="150px" Height="30px" Font-Names="Georgia" MyCustomAttr="foo" margin-Left="100px" Text='<%# Bind("CharName") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

<asp:Button ID="btnButton" runat="server" Text="Show"  autopostback="True"/>

Когда нажата кнопка в виде строки предупреждения, идентификатор из каждой строки должен отображаться из базы данных.

Может кто-нибудь помочь мне, пожалуйста?

1 Ответ

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

Я использую такой код, чтобы назначить обработчик кликов для строки:

Protected Sub Grid_RowDataBound(sender As Object, e As GridViewRowEventArgs)

    'apply click attribute to select a row 
    If e.Row.RowType = DataControlRowType.DataRow Then
        e.Row.Attributes("onclick") = ClientScript.GetPostBackClientHyperlink(sender, "Select$" & e.Row.RowIndex)
    End If

End Sub

Затем, чтобы получить соответствующие данные из коллекции datakeys

Protected Sub Grid_RowCommand(sender As Object, e As GridViewCommandEventArgs)

    If e.CommandName = "Select" Then
        Dim LevelID As String = GridResults.DataKeys(e.CommandArgument).Item("LevelID")
        ' Do something with ID here
    End If

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