0

私はC#が初めてで、VBでは次のことができます:

Protected Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand
        If e.CommandName = "CommandName" Then

            Dim label1 As Label = e.Item.FindControl("label1")

            Response.Write(label1.Text))


        End If

    End Sub

C# と RowCommand では、findcontrol を使用してコントロールの値にアクセスできません。行コマンドでメソッドを呼び出すときに使用できるように、2 つのラベルの値を取得したい

更新: C#で私がするとき

Label label1 = (Label)e.Item.FindControl("label1"); 

また

Label label1 = (Label)e.Row.FindControl("label1"); 

利用可能な行またはアイテムがありません

4

3 に答える 3

0

ボタンにCommandArgumentを追加し、必要なものを取得できました。

グリッドビューの.aspx

  <asp:Button ID="btnActive" CommandArgument='<%# Eval("Id")%>' CommandName='<%# Eval("Activity")%>' Text='<%# Eval("Activity")%>' runat="server" />

次に、.aspx.csのRowCammandにあります

  protected void gridview_RowCommand(object source, System.Web.UI.WebControls.GridViewCommandEventArgs e)
                {
                    if (e.CommandName == "Disable")
                    {
                          string[] args = e.CommandArgument.ToString().Split(',');
                          Guid gArticleId = new Guid(args[0]);

                          Response.Write(gArticleId);

                    }
于 2010-01-11T18:28:37.267 に答える
0

これが私のコードです:

<asp:GridView ID="gridview1" runat="server" Width="98%" AutoGenerateColumns="false"
        AllowPaging="True" PageSize="10" PagerStyle-HorizontalAlign="center"
        OnRowCommand="gridView_RowCommand"
        >
    <columns>
        <asp:TemplateField HeaderText="Active" HeaderStyle-HorizontalAlign="Left">
            <ItemTemplate>
                <asp:Label ID="lblArticleId" Text='<%# Eval("Id")%>' Visible="false" runat="server"></asp:Label>
                <asp:Button ID="btnActive" CommandName='<%# Eval("Activity")%>' Text='<%# Eval("Activity")%>' runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </columns>
</asp:GridView>

.cs:

protected void gridView_RowCommand(object source, System.Web.UI.WebControls.GridViewCommandEventArgs e)
            {
                if (e.CommandName == "Disable") 
                {
                    UpdateArticleVisibility(true, [lblArticleID.Text value], gOrgId);
                }

                if (e.CommandName == "Enable")
                {
                    UpdateArticleVisibility(false, [lblArticleID.Text value], gOrgId);
                }
            }
于 2010-01-11T18:11:41.140 に答える
0

Label1 はどこにありますか? C# の例を投稿できますか? これも DataGridCommandEventArgs 型のはずなので、引数が違うのかな?同じイベント引数タイプとして、アイテムが存在できなかった方法がわかりません。完全な C# の例を見ないとわかりません。

于 2010-01-11T17:22:00.273 に答える