1

ページにlabel controlがあり、その下にlabel controlがありGridviewます。ラベル コントロールに存在する値は にも存在しますGridview。ラベル コントロールには次のような値があります

3244|Yellow Ink| Test Link

グリッドビューでは、値も 3244 です

3244    yello Ink   Test Link
3255    Green Link  Test2

ページが読み込まれるとすぐに、コード ビハインドで 3244の行インデックスが必要です。それを行う方法はありますか。

4

3 に答える 3

0

使用しているデータ ソースの種類がわからない場合、次のような LINQ を使用する方法があります。

protected void Page_Load(object sender, EventArgs e)
{
    // Fetch the text from your label. (I'm assuming that you have only one label with the text "3244|Yellow Ink| Test Link".
    string text = Label1.Text;

    // Find the first row or return null if not found.
    var resultRow = GridView1.Rows.Cast<GridViewRow>().FirstOrDefault(row =>
    {
        // Get the id (that I'm guessing is the first (0-index) column/cell)
        var id = row.Cells[0].Text;

        // Return true/false if the label text starts with the same id.
        return text.StartsWith(id);
    });

    if (resultRow != null)
    {
        var index = resultRow.RowIndex;
    }
}

短いバージョンは次のようになります。

var resultRow = GridView1.Rows.Cast<GridViewRow>()
    .FirstOrDefault(r => text.StartsWith(r.Cells[0].Text));
于 2012-11-13T22:07:01.350 に答える
0
  protected void btnJobAppSelected_Click(object sender, EventArgs e)
{
    foreach (GridViewRow row in GridViewJobApplications.Rows)
    {

        int rowIndex = ((sender as LinkButton).NamingContainer as GridViewRow).RowIndex;

        LinkButton btnJobAppSelected = (LinkButton)GridViewJobApplications.Rows[rowIndex].FindControl("btnJobAppSelected");

    }
}
于 2015-12-01T08:51:12.933 に答える