trueに設定せずに行を選択し、AutoGenerateSelectButton
selectedIndexをチェックする 方法はGridView_SelectedIndexChanged
?
ユーザーがテーブルの特定のフィールドを選択したことを認識する方法(たとえば、選択されたrow2、col3)
trueに設定せずに行を選択し、AutoGenerateSelectButton
selectedIndexをチェックする 方法はGridView_SelectedIndexChanged
?
ユーザーがテーブルの特定のフィールドを選択したことを認識する方法(たとえば、選択されたrow2、col3)
(テンプレートフィールドを使用して)ボタン付きの列を追加し、CommandNameを「選択」に設定します。それはうまくいくはずです。
これは、選択ボタンのない平均的なグリッドビューです。RowDataBoundメソッドを使用すると、グリッドを強調表示できます。特定の列が選択されたかどうかを、SelectedIndexChangedメソッドのif条件で確認できます。これにより、選択された行がわかり、以下に示すように、列が作成された順序に基づいて特定の列から値を取得できます。これは、彼らがxとyをクリックした場所を正確に示すものではありませんが、正しい方向に進むはずです。ただし、これは、もちろん、どの行が強調表示されてクリックされたかに基づいて列データを取得します。
<asp:GridView ID="PropertyGridView" runat="server" AutoGenerateColumns="False" OnSelectedIndexChanged="PropertyGridView_SelectedIndexChanged" OnRowDataBound="PropertyGridView_RowDataBound">
<RowStyle HorizontalAlign="Left" />
<EmptyDataTemplate>
<div>
<asp:Label runat="server" ID="EtLbl" Text="No properties were found."</asp:Label>
</div>
</EmptyDataTemplate>
<Columns>
<asp:BoundField DataField="Name" HeaderText="User Name" Width="20%" /> </asp:BoundField>
<asp:BoundField DataField="Age" HeaderText="User Age" Width="20%" /> </asp:BoundField>
<asp:BoundField DataField="Height" HeaderText="User Height" Width="20%" /> </asp:BoundField>
</Columns>
</asp:GridView>
public void PropertyGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.DataItemIndex == -1)
return;
e.Row.Attributes.Add("onMouseOver", "this.style.cursor='hand';");
e.Row.Attributes.Add("onclick", this.GetPostBackClientEvent(PropertyGridView,"Select$" + e.Row.RowIndex.ToString()));
}
public void PropertyGridView_SelectedIndexChanged(object sender, EventArgs e)
{
string Name = PropertyGridView.SelectedRow.Cells[0].Text;
string Age= PropertyGridView.SelectedRow.Cells[1].Text;
string Height PropertyGridView.SelectedRow.Cells[2].Text;
if( Height != null)
{
// The user selected a row and this Column ( Height has data )
}
}