0

OnClickのイベントを使用してEditButtonいますGridView

protected void editclick(object sender, EventArgs e)
{
    try
    {
        Button EditButton = (Button)gvUserMaster.FindControl("edit_btn");
        tblAddEdit.Visible = true;
    }
    catch(Exception ex)
    {
    }
}

しかし、私は例外を取得しています:

同じ ID 'lblUserName' を持つ複数のコントロールが見つかりました。FindControl では、コントロールに一意の ID が必要です。

foreach ループを使用してみましたが、それもうまくいきませんでした。

4

2 に答える 2

0

編集ボタンのクリックイベントで編集関数を記述して解決し、選択した行の行IDを取得しました。

int rindex = (((GridViewRow)(((Button)(sender)).Parent.BindingContainer))).RowIndex;
 Button EditButton = (Button)gvUserMaster.Rows[rindex].FindControl("btnEdit");

rindexはrowindexを提供し、EditButtonは選択された行のIDを提供します。

于 2012-04-18T11:05:23.397 に答える
0

テンプレート フィールドを使用して、次のようなボタンを追加します

<asp:TemplateField HeaderText="Edit">
    <ItemTemplate>
        <asp:LinkButton runat="server" ID="lnkEdit" Text="Edit"
            CausesValidation="false" CommandArgument='<%# Container.DataItemIndex %>'
            OnCommand="lnkEdit_Command"></asp:LinkButton>
    </ItemTemplate>
</asp:TemplateField>

およびコードビハインドで:

protected void lnkEdit_Command(object sender, System.Web.UI.WebControls.CommandEventArgs e)
{
    id = e.CommandArgument.ToString();
    --add your code
}

idで行インデックスを取得します

于 2012-04-17T11:30:04.310 に答える