Asp.net GridView Permettant la sélection d'une ligne
Je suis en utilisant GridView dans asp.net. Je veux sélectionner une seule ligne de données. J'ai regardé pour MultiSelect et SelectionMode dans le panneau des propriétés, mais je ne le trouve pas.
Donc comment faire pour activer la sélection de lignes dans GridView?
Grâce.
Code Derrière
public partial class SearchCourse : System.Web.UI.Page
{
Connection dbCon;
DataTable tbl;
protected void Page_Load(object sender, EventArgs e)
{
dbCon = new Connection();
}
protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
{
if (RadioButton1.Checked) {
txtSubName.Enabled = true;
comboSemester.Enabled = false;
comboYear.Enabled = false;
comboProgram.Enabled =false;
txtSubName.Text = "";
}
}
protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
{
if (RadioButton2.Checked) {
comboProgram.Enabled = true;
if (comboProgram.SelectedItem.ToString() == "Foundation Course")
{
comboSemester.Enabled = false;
comboYear.Enabled = false;
}
else {
comboSemester.Enabled = true;
comboYear.Enabled = true;
}
txtSubName.Text = "";
txtSubName.Enabled = false;
}
}
protected void imgBtnSearch_Click(object sender, ImageClickEventArgs e)
{
if (RadioButton1.Checked) {
String name = txtSubName.Text;
tbl = dbCon.getResultsBySubjectName(name);
GridView1.DataSource = tbl;
GridView1.DataBind();
}
else if (RadioButton2.Checked)
{
String program = comboProgram.SelectedItem.ToString();
String year = comboYear.SelectedItem.ToString();
String sem= comboSemester.SelectedItem.ToString();
tbl = dbCon.getResultsByProgram(program,year,sem);
GridView1.DataSource = tbl;
GridView1.DataBind();
}
else if (RadioButton3.Checked)
{
String name = txtSubName.Text;
tbl = dbCon.getResultsBySubjectNo(name);
GridView1.DataSource = tbl;
GridView1.DataBind();
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
String program = comboProgram.SelectedItem.ToString();
String year, sem;
if (program == "Foundation Course")
{
comboYear.Enabled = false;
comboSemester.Enabled = false;
year = null;
sem = null;
}
else {
comboYear.Enabled = true;
comboSemester.Enabled = true;
year = comboYear.SelectedItem.ToString();
sem = comboSemester.SelectedItem.ToString();
}
tbl = dbCon.getResultsByProgram(program, year, sem);
GridView1.DataSource = tbl;
GridView1.DataBind();
}
protected void comboYear_SelectedIndexChanged(object sender, EventArgs e)
{
String program = comboProgram.SelectedItem.ToString();
String year = comboYear.SelectedItem.ToString();
String sem = comboSemester.SelectedItem.ToString();
tbl = dbCon.getResultsByProgram(program, year, sem);
GridView1.DataSource = tbl;
GridView1.DataBind();
}
protected void comboSemester_SelectedIndexChanged(object sender, EventArgs e)
{
String program = comboProgram.SelectedItem.ToString();
String year = comboYear.SelectedItem.ToString();
String sem = comboSemester.SelectedItem.ToString();
tbl = dbCon.getResultsByProgram(program, year, sem);
GridView1.DataSource = tbl;
GridView1.DataBind();
}
protected void RadioButton3_CheckedChanged(object sender, EventArgs e)
{
if (RadioButton3.Checked)
{
txtSubName.Enabled = true;
comboSemester.Enabled = false;
comboYear.Enabled = false;
comboProgram.Enabled = false;
txtSubName.Text = "";
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
GridView Code
<asp:GridView ID="GridView1" CssClass="grid" runat="server" AllowPaging="True"
BorderColor="Black" BorderStyle="Solid" BorderWidth="2px"
GridLines="Horizontal" EnableViewState="False"
PageSize="5" onselectedindexchanged="GridView1_SelectedIndexChanged" >
<RowStyle CssClass="gridRow" Width="800px" />
<SelectedRowStyle BackColor="#FF0066" ForeColor="White" />
</asp:GridView>
- s'il vous plaît poster gridview code sur la page aspx ainsi.
- l'utilisation d'un point d'arrêt sur
GridView1_SelectedIndexChanged
pour vérifier que l'événement est d'obtenir le feu ou pas. - Pourquoi il n'a pas MultiSelect et SingleSelection propriétés de la ??
- vous devriez demander à Microsoft. En passant, est-ce de travailler ou pas?
- j'ai mis à jour ma réponse. Jetez un oeil sur elle. Il va sûrement travailler pour vous.
Vous devez vous connecter pour publier un commentaire.
Je pense que le MultiSelect et SelectionMode propriétés sont uniquement disponibles avec les VB.NET la grille, et non dans ASP.NET. Gardez à l'esprit que tous les contrôles ASP.NET HTML-en-déguisement, de sorte qu'ils peuvent être plus limités. Il n'ya aucune raison pourquoi vous ne pouvez pas avoir une multi-sélection de la table, mais vous avez à faire de la plomberie vous-même. Donc, vous devez activer la sélection d'une ligne, soit par la manipulation de la RowDataBound cas comme dans
http://forums.asp.net/t/992062.aspx?How+à+select+ligne+en+gridview+sur+clic
ou autre personne à l'aide de MS-option fournie comme dans
http://msdn.microsoft.com/en-us/library/wbk82279(v=vs. 100).aspx
Alors vous avez besoin pour gérer la SelectedIndexChanging cas, trouver la ligne qui l'utilisateur a cliqué, et la poignée de la ligne de coloration vous-même.
Dans gridview, vous devez définir un événement
onselectedindexchanged
etonrowdatabound
comme ci-dessous:pour montrer la ligne sélectionnée, vous pouvez utiliser suivant le style de votre affichage de la grille:
dans le code behind:
remarque: vous pouvez trouver l'événement dans l'événement de la fenêtre.
<%@ Page Language="C#" EnableEventValidation="false"