C# 选中的行GridView赢了';t提取数据

C# 选中的行GridView赢了';t提取数据,c#,asp.net,gridview,selected,selectedindexchanged,C#,Asp.net,Gridview,Selected,Selectedindexchanged,我有一个GridView,我正在用数据库中的数据填充它。数据显示得非常完美。我的问题是,我希望能够单击一行,然后在其他地方显示该行中的信息(最终我将有一个拆分屏幕来很好地格式化所选数据)。选择有效,因为它高亮显示当前行。然而,我不知道如何在别处显示这些数据。现在,我尝试在一个名为testLabel的标签中显示单个单元格的内容。我尝试了许多不同的方法,当我单击新行时,testLabel永远不会更新。有人能看到这里出了什么问题吗 C# ASPX 名字 姓 陈述 邮政编码 来源 加入日期 您提供了自

我有一个GridView,我正在用数据库中的数据填充它。数据显示得非常完美。我的问题是,我希望能够单击一行,然后在其他地方显示该行中的信息(最终我将有一个拆分屏幕来很好地格式化所选数据)。选择有效,因为它高亮显示当前行。然而,我不知道如何在别处显示这些数据。现在,我尝试在一个名为testLabel的标签中显示单个单元格的内容。我尝试了许多不同的方法,当我单击新行时,testLabel永远不会更新。有人能看到这里出了什么问题吗

C#

ASPX


名字
姓
陈述
邮政编码
来源
加入日期

您提供了自己的选择按钮,并将属性设置为true。你必须只选择其中一个


编辑:啊,现在就看。标签“testLabel”位于updatepanel之外。将其移动到ContentTemplate。

是否尝试将testLabel放置在另一个UpdatePanel中,并在更改标签文本后强制对其进行更新?

从外观上看,它应该可以工作。以下是几点建议:

  • 访问
    行.Cells[2].Text时,请记住索引是从零开始的(第一个单元格的索引为0)
  • 您有一个不可见的固定列。虽然没有显示,但该列应计入列索引编号中
  • DefaultGrid\u SelectedIndexChanged
    内放置断点。当它到达那个里时,通过观察变量和调用方法来玩弄各种可能性。那应该对你有很大帮助

我怀疑您的
DefaultGrid\u SelectedIndexChanged
是否曾被呼叫过。选中此项:

引述:

要触发selectedIndexChanged事件处理程序,您需要一个buttonfield或一个回发控件,例如一个commandName=“Select”的button、linkbutton、imagebutton


乍一看,它应该是有效的。您能否显示填充数据的代码?您是否在代码中放置了断点?选择后是否有回发?调试器在说什么?你是说“选择按钮”列吗?那一个肯定在显示。你定义了两个,只有一个在显示。请看@Tomas对此的评论,您是否在
DefaultGrid\u SelectedIndexChanged
中放置了断点?它停在那里了吗?我怀疑未调用
DefaultGrid\u SelectedIndexChanged
。请记住,行选择着色发生在客户端,而
DefaultGrid\u SelectedIndexChanged
中的代码发生在服务器端。据我所知,它确实会被调用,因为当我单击新行时,该行的颜色会改变。您能在visual studio中设置断点来证明这一点吗?
protected void DefaultGrid_SelectedIndexChanged(Object sender, EventArgs e)
{
    GridViewRow row = DefaultGrid.SelectedRow;
    testLabel.Text = row.Cells[2].Text;
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID = "ScriptManager" runat="server" />
    <div>
        <div>
            <asp:Label runat="server" id = "orderByLabel" Text = "Order By: " />


            <asp:DropDownList runat="server" ID="orderByList" AutoPostBack="true">
                <asp:ListItem Value="fName" Selected="True">First Name</asp:ListItem>
                <asp:ListItem Value="lName">Last Name</asp:ListItem>
                <asp:ListItem Value="state">State</asp:ListItem>
                <asp:ListItem Value="zip">Zip Code</asp:ListItem>
                <asp:ListItem Value="cwaSource">Source</asp:ListItem>
                <asp:ListItem Value="cwaJoined">Date Joined</asp:ListItem>
            </asp:DropDownList>
        </div>
        <div>
            <asp:Label runat="server" ID="searchLabel" Text="Search For: " />
            <asp:TextBox ID="searchTextBox" runat="server" Columns="30" />
            <asp:Button ID="searchButton" runat="server" Text="Search" />
        </div>
    <div align="center">
    <asp:UpdatePanel ID = "up" runat="server">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID = "orderByList"
        EventName="SelectedIndexChanged" />
         <asp:AsyncPostBackTrigger ControlId="searchButton" EventName="Click" />
    </Triggers>

    <ContentTemplate>
        <asp:GridView ID="DefaultGrid" runat = "server" DataKeyNames = "fName"
        onselectedindexchanged = "DefaultGrid_SelectedIndexChanged"
        autogenerateselectbutton = "true"
        selectedindex="0">
        <SelectedRowStyle BackColor="Azure"
        forecolor="Black"
        font-bold="true" />
        <Columns>
            <asp:ButtonField CommandName="Select" Visible="false" />
        </Columns>
        </asp:GridView>
        </ContentTemplate>
        </asp:UpdatePanel>



    </div>
    </div>
    <div>
        <asp:Label runat="server" ID="testLabel" Text="test" />
    </div>
    </form>
</body>
</html>