5 Réponses :


9
votes

DATAVALUEFIELD semble être faux - ne devrait-il pas être DIRECTURED ? De même, vous devez avoir selectedValue = '<% # eval ("** kinkid **")%>' - nom de département serait le SeletectText .


3 commentaires

C'est là que je suis en difficulté. Non, la propriété ne me rendait visible pour moi. À propos de Datavaluefield, oui, vous avez raison, il devrait être la clé principale. Mais pas une partie de la discussion jusqu'à ce que ces deux propriétés ne soient disponibles pour moi.


Vs Designer peut ne pas vous montrer la propriété d'Intelli-Sense mais c'est là-bas. Il y a deux propriétés - SelectedValue et sélectionnée. Que se passe-t-il si vous écrivez sélectionnée = '<% # eval ("département")%>'?


Mon erreur - cela aurait dû être comme sélectionnéeValue = '<% # eval ("département")%>'.



0
votes

sur votre grille il y a un événement appelé itemCommand code>. Créez une méthode pour celui-ci:

 case Grid.EditCommandName:     
//set a member variable to the string of the cell you are editing.
//something like: mString = e.item..["Column"].toString();                  
                   break;


0 commentaires

4
votes

L'utilisation du GridView_Databound code> Le gestionnaire d'événements résout le problème.

Dans votre cas, vous devrez ajouter un Hiddenfield CODE> pour stocker le pk_départimardide Code> Valeur: P>

<asp:GridView ID="gvExample" runat="server" AutoGenerateColumns="False" OnDataBound="gvExample_DataBound">
  <Columns>
    <asp:TemplateField HeaderText="Department">
      <EditItemTemplate>
        <asp:DropDownList ID="ddlDepartment_Edit" runat="server" DataSourceID="dsDepartment_Edit"
          DataTextField="DepartmentName" DataValueField="PK_DepartmentId">
        </asp:DropDownList>
        <asp:HiddenField ID="hfDepartmentId" runat="server" Value='<%# Bind("PK_DepartmentId") %>' />
        <asp:SqlDataSource ID="dsDepartment_Edit" runat="server" ConnectionString="<%$ ConnectionStrings:BlackHillsConnect %>"
          ProviderName="System.Data.SqlClient" SelectCommand="sp_GetDepartmentDropDown" SelectCommandType="StoredProcedure">
        </asp:SqlDataSource>
      </EditItemTemplate>
      <ItemTemplate>
        <asp:Label ID="lblDepartmentName" runat="server" Text='<%# Eval("DepartmentName") %>'>
        </asp:Label>
      </ItemTemplate>
    </asp:TemplateField>
    <asp:CommandField ShowEditButton="True" ButtonType="Button" />
  </Columns>
</asp:GridView>

protected void gvExample_DataBound(object sender, EventArgs e)
{
  foreach (GridViewRow gvRow in gvExample.Rows)
  {
    DropDownList ddlDepartment = gvRow.FindControl("ddlDepartment_Edit") as DropDownList;
    HiddenField hfDepartmentId = gvRow.FindControl("hfDepartmentId") as HiddenField;

    if (ddlDepartment != null && hfDepartmentId != null)
    {
      ddlDepartment.SelectedValue = hfDepartmentId.Value;
    }
  }
}


0 commentaires

0
votes

C'est le meilleur que j'ai trouvé ....

protected void GridView1_DataBound(object sender, EventArgs e)
{
    foreach (GridViewRow gvRow in GridView1.Rows)
    {
        RadioButtonList rbl = gvRow.FindControl("rblPromptType") as RadioButtonList;
        HiddenField hf = gvRow.FindControl("hidPromptType") as HiddenField;

        if (rbl != null && hf != null)
        {
            if (hf.Value != "")
            {
                //clear the default selection if there is one
                rbl.ClearSelection();
            }

            rbl.SelectedValue = hf.Value;
        }
    }
}


0 commentaires

1
votes

Pourquoi vous suggérez-vous d'utiliser des boucles, lorsqu'il y a une méthode gridview code> spécifiquement faite spécifiquement pour la modification de la condition d'une ligne - le rowdatabound () code>?

protected void MyGridView_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            GridViewRow gvRow = (GridViewRow)e.Row;
            HiddenField hfAgentID = (HiddenField)gvRow.FindControl("hfAgentID");
            if (hfAgentID != null)
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    DropDownList ddlAgent = (DropDownList)gvRow.FindControl("ddlAgent");
                    ddlAgent.SelectedValue = hfAgentID.Value;
                }
            }
        }


0 commentaires