C# 如何知道在数据列表中单击的按钮的工具提示

C# 如何知道在数据列表中单击的按钮的工具提示,c#,asp.net,visual-studio-2008,datalist,C#,Asp.net,Visual Studio 2008,Datalist,我需要代码示例。我尝试了selectedindexchange,但它没有注册任何索引更改。要使用什么 它的c#vs08 asp.net sql server 代码文件是 .cs文件 源文件 错误:-我忘了把 OnItemCommand=“MyDataList\u ItemCommand” 在数据列表源代码中 …您可以这样做: protected void Button1_Click1(object sender, EventArgs e) { Label5.Text = (sender

我需要代码示例。我尝试了selectedindexchange,但它没有注册任何索引更改。要使用什么

它的c#vs08 asp.net sql server

代码文件是

.cs文件 源文件
错误:-我忘了把 OnItemCommand=“MyDataList\u ItemCommand” 在数据列表源代码中 …您可以这样做:

protected void Button1_Click1(object sender, EventArgs e)
{
    Label5.Text = (sender as Button).ToolTip;
}
此外,如果您知道要使用该行中的其他控件,则可以使用DataList.ItemCommand事件而不是按钮。单击事件。下面是一个示例,说明了如何做到这一点:

ASP标记:

        <asp:Label ID="MyLabel" runat="server" />
        <asp:DataList ID="MyDataList" runat="server" OnItemCommand="MyDataList_ItemCommand">
            <ItemTemplate>
                <!-- Suppose you had some input controls that you needed to work with as well -->
                <asp:TextBox ID="txtInput1" runat="server" />
                <asp:TextBox ID="txtInput2" runat="server" />
                <asp:Button ID="btnMyCommand" runat="server" CommandName="MyCommand" CommandArgument='<%# Eval("NAME") %>' Text='<%# "Execute My Command on ID:" + Eval("ID") %>' ToolTip='<%# string.Format("This will execute the \"My Command\" command on {0}.", Eval("NAME")) %>' />
                <!-- just some examples of other buttons on the same row that execute different commands -->
                <asp:Button ID="btnDoSomethingCrazy" runat="server" CommandName="Do Something Crazy!" Text="Do Something Crazy!" />
                <asp:LinkButton ID="btnEdit" runat="server" CommandName="Edit" Text="Edit" />
            </ItemTemplate>
        </asp:DataList>
您可以这样做:

protected void Button1_Click1(object sender, EventArgs e)
{
    Label5.Text = (sender as Button).ToolTip;
}
此外,如果您知道要使用该行中的其他控件,则可以使用DataList.ItemCommand事件而不是按钮。单击事件。下面是一个示例,说明了如何做到这一点:

ASP标记:

        <asp:Label ID="MyLabel" runat="server" />
        <asp:DataList ID="MyDataList" runat="server" OnItemCommand="MyDataList_ItemCommand">
            <ItemTemplate>
                <!-- Suppose you had some input controls that you needed to work with as well -->
                <asp:TextBox ID="txtInput1" runat="server" />
                <asp:TextBox ID="txtInput2" runat="server" />
                <asp:Button ID="btnMyCommand" runat="server" CommandName="MyCommand" CommandArgument='<%# Eval("NAME") %>' Text='<%# "Execute My Command on ID:" + Eval("ID") %>' ToolTip='<%# string.Format("This will execute the \"My Command\" command on {0}.", Eval("NAME")) %>' />
                <!-- just some examples of other buttons on the same row that execute different commands -->
                <asp:Button ID="btnDoSomethingCrazy" runat="server" CommandName="Do Something Crazy!" Text="Do Something Crazy!" />
                <asp:LinkButton ID="btnEdit" runat="server" CommandName="Edit" Text="Edit" />
            </ItemTemplate>
        </asp:DataList>

您可以尝试强制转换发件人:

protected void Button1_Click1(object sender, EventArgs e)
{
    Button myButton = (Button)sender;
    Label5.Text = myButton.ToolTip;
}

您可以尝试强制转换发件人:

protected void Button1_Click1(object sender, EventArgs e)
{
    Button myButton = (Button)sender;
    Label5.Text = myButton.ToolTip;
}

对于其他新蜜蜂,也可以通过将datalist的itemcommand属性从design视图设置为名为datalist1_blahblah….的方法来完成以下操作。。。。注意:-如果该方法位于.cs文件中,则该方法将出现在下拉列表中“/”行中具有CommandName属性集的所有按钮中可能存在错误,这可能会导致此事件处理程序执行。“即使没有此属性集的按钮,如上面编辑的问题代码中的“按钮1单击”导致执行datalist的click事件和itemcommand事件!。。为什么?人力资源部,你是对的。DataList.ItemCommand事件()的文档只说它“在DataList控件中单击任何按钮时发生”,并且它“通常在具有自定义CommandName值的按钮控件时使用。”我将更新示例中的注释以使其更准确。至于原因…控件设计者可能只是没有看到将事件限制为CommandName设置为的按钮的理由。如果CommandName为null,您可以选择忽略它。对于其他新的蜜蜂,也可以通过将datalist的itemcommand属性从设计视图设置为使用名称datalist1_blahblah…生成的方法来完成以下操作。。。。注意:-如果该方法位于.cs文件中,则该方法将出现在下拉列表中“/”行中具有CommandName属性集的所有按钮中可能存在错误,这可能会导致此事件处理程序执行。“即使没有此属性集的按钮,如上面编辑的问题代码中的“按钮1单击”导致执行datalist的click事件和itemcommand事件!。。为什么?人力资源部,你是对的。DataList.ItemCommand事件()的文档只说它“在DataList控件中单击任何按钮时发生”,并且它“通常在具有自定义CommandName值的按钮控件时使用。”我将更新示例中的注释以使其更准确。至于原因…控件设计者可能只是没有看到将事件限制为CommandName设置为的按钮的理由。如果CommandName为null,您可以选择忽略它。
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack && !Page.IsCallback)
        {
            // some example data
            MyDataList.DataSource = new[] {
                new { ID = 1, NAME = "ABCD" },
                new { ID = 2, NAME = "BCDE" },
                new { ID = 3, NAME = "CDEF" },
            };
            MyDataList.DataBind();
        }
    }

    protected void MyDataList_ItemCommand(object sender, DataListCommandEventArgs e)
    {
        // all of the buttons within the row can cause this event handler to execute.
        // Use the CommandName argument (populated by the CommandName property of the button that was clicked) in order to determine which button was clicked and take the appropriate action
        switch (e.CommandName)
        {
            case "Edit":
                // ...
                break;
            case "Update":
                // ...
                break;
            case "Cancel":
                // ...
                break;
            case "Delete":
                // ...
                break;
            case "MyCommand":
                // update your label using the command argument rather that the button's ToolTip
                MyLabel.Text = e.CommandArgument.ToString();

                TextBox txtInput1 = e.Item.FindControl("txtInput1") as TextBox;
                TextBox txtInput2 = e.Item.FindControl("txtInput2") as TextBox;

                string value1 = txtInput1.Text;
                string value2 = txtInput2.Text;

                // do something with the input values
                break;
            case "Do Something Crazy!":
                // ...
                break;
        }
    }
protected void Button1_Click1(object sender, EventArgs e)
{
    Button myButton = (Button)sender;
    Label5.Text = myButton.ToolTip;
}