Ändern GridView-Spalte-Wert in C#

Ich habe ein GridView, die hat eine Spalte Status, der hat default-Wert False(in einem label) in jeder Zeile.
Es gibt eine Spalte mit dem Namen als Student, das ist link-button. Also, wenn Benutzer klickt auf den Student-name
ein gridview-Steuerelement geöffnet wird, erscheinen die Daten für diesen Benutzer. Ich ändere die Daten für das zweite GridView und speichern Sie es dann. Also, Wenn diese Daten erfolgreich gespeichert haben. Ich möchte zum ändern des Status 1. GridView von False auf True für die betreffende Zeile.
Also bitte machen Sie mir, wie es zu tun?
Ist es notwendig, zu binden, das GridView wieder. Gibt es eine einfache Methode, lassen Sie es mich bitte wissen.

Also das Haupt problem ist, wie zu ändern, die einem bestimmten Wert der Zelle in einem GridView, basierend auf einige action.

Schreibe ich das Stück Code, was ich versuche.
Ich 'm, speichern die Übergeordnete GridView-Zeile nicht. ist der ViewState.

protected void btnSave_Click(object sender, EventArgs e)
{
    if (ViewState["RowIndexPOS"] != null)
    {
        int iRowIndex = Convert.ToInt32(ViewState["RowIndexPOS"]);
        Label lblStatus = (Label)GridViewMultiplePOSAssociationId.Rows[iRowIndex].FindControl("LabelStatusPendingPOSId");
        //Means all rows in GridView are successfully associated
        if (table.Rows.Count == iResultCount)
        {
            lblStatus.Text = "Associated";
        }
        else
        {
            lblStatus.Text = "Pending";
        }
    }
}

Code zu binden, erste gridview

DataTable dt = new DataTable();
DataRow dr = null;
dt.Columns.Add(new DataColumn("Row Number", typeof(string)));
dt.Columns.Add(new DataColumn("POS Id", typeof(string)));
dt.Columns.Add(new DataColumn("Action", typeof(string)));
dt.Columns.Add(new DataColumn("Status", typeof(string)));
for (int index = 0; index < m_listStrPendingListOfPOS.Count; index++)
{
    dr = dt.NewRow();
    int iRowNo = index + 1;
    dr["Row Number"] = iRowNo;
    string strGridViewPOSId = m_listStrPendingListOfPOS[index];
    dr["POS Id"] = strGridViewPOSId;
    dr["Action"] = string.Empty;
    dr["Status"] = "Pending";
    dt.Rows.Add(dr);                                            
}

ViewState["POSTable"] = dt;
GridViewMultiplePOSAssociationId.DataSource = dt;
GridViewMultiplePOSAssociationId.DataBind();  

Wenn ich versuche diese. Spalte Status ist Leer, in jeder Zeile. Nach der Einstellung Verbunden.

Wenn das übergeordnete gridview-zugänglich ist, von der save-Funktion des zweiten gridview, dann mit student-id oder die Nummer der Zeile info an die Eltern, werden Sie in der Lage, ändern Sie den Wert des status.
Übergeordnete GridView-nicht zugänglich ist. Aber ich habe die Zeile nicht. info.
es gibt viele Möglichkeiten, es zu tun. Wenn die Eltern gebunden ist, um eine datasource und wenn, ist zugänglich in speichern func, können Sie die Wirkung der änderung. Oder wenn der Elternteil gebunden ist, die Datenbank, die Sie ändern können, und neu zu laden. Ohne das komplette Szenario ist es schwer zu kommentieren.
Elternteil gebunden ist dataset.
Gibt es irgendwelche Fehler bei der oben genannten Funktion? Es wird gut sein, um zu überprüfen, ob lblStatus nicht null ist, bevor Sie tatsächlich ändern Sie dessen Wert.

InformationsquelleAutor user3264676 | 2014-03-13

Schreibe einen Kommentar