2010-05-17 14 views
0

J'ai une application de page personnalisée sharepoint qui est rendue à partir d'un contrôle utilisateur. Dans la page de contrôle de l'utilisateur, j'avais utilisé SPGridview pour afficher les données. Ma première colonne est colonne de titre (colonne de bouton de lien), quand l'utilisateur clique sur le lien, alors une fenêtre s'ouvrira avec les données correspondantes. Mais le problème est que le bouton de lien ne fonctionne pas correctement. Mais cette application fonctionne aussi bien dans l'application asp.net.SP La colonne du bouton de lien Gridview ne fonctionne pas

Code Ma est indiqué ci-dessous ..

<asp:UpdatePanel runat="server" ID="UpdatePanel2"> 
              <ContentTemplate> 
               <SharePoint:SPGridView ID="dgApplicationBox" CellPadding="0" Height="100%" runat="server" 
                ForeColor="Black" Font-Size="10px" Font-Names="Verdana" AutoGenerateColumns="False" 
                AllowPaging="True" Width="100%" BorderStyle="None" BorderWidth="0px" PageSize="10" 
                BorderColor="White" BackColor="White" OnRowDataBound="dgApplicationBox_RowDataBound" 
                DataKeyNames="ApplicationID" OnSelectedIndexChanged="dgApplicationBox_SelectedIndexChanged" 
                OnPageIndexChanging="dgApplicationBox_PageIndexChanging" CssClass="ms-listviewtable" 
                AlternatingRowStyle-CssClass="ms-alternating"> 
                <SelectedRowStyle Font-Bold="True" ForeColor="Black" BackColor="#CE5D5A"></SelectedRowStyle> 
                <EditRowStyle Font-Size="10px" Font-Names="Verdana,Arial,Helvetica,sans-serif"></EditRowStyle> 
                <HeaderStyle Font-Size="11px" Height="20px" Font-Bold="True" ForeColor="Black" BackColor="#E7E8EC"> 
                </HeaderStyle> 
                <PagerStyle HorizontalAlign="Center" ForeColor="#414E61" Font-Size="5px" Font-Names="arial" 
                 Height="10px" BackColor="#EBF3FF"></PagerStyle> 
                <RowStyle /> 
                <Columns> 
                 <asp:TemplateField HeaderText="Title" HeaderStyle-CssClass="ms-vb"> 
                  <ItemTemplate> 
                   <asp:LinkButton ID="lbtnSubject" 
                    Text='<%# Bind("UDF5") %>' runat="server" OnClick="lbtnSubject_Click"></asp:LinkButton> 
                  </ItemTemplate> 
                  <HeaderStyle HorizontalAlign="Left" CssClass="ms-vh2" Font-Bold="true" /> 
                  <ItemStyle HorizontalAlign="Left" CssClass="ms-vb2" /> 
                 </asp:TemplateField> 
                 <asp:TemplateField HeaderText="Request No."> 
                  <ItemTemplate> 
                   <asp:Label ID="lblReqNo" Text='<%# Bind("UDF1") %>' runat="server" /> 
                  </ItemTemplate> 
                  <HeaderStyle HorizontalAlign="Left" CssClass="ms-vh2" Font-Bold="true" /> 
                  <ItemStyle HorizontalAlign="Left" CssClass="ms-vb2" /> 
                 </asp:TemplateField> 
                 <asp:BoundField DataField="CreatedOn" HeaderText="Created On" DataFormatString="{0:MM/dd/yyyy}" 
                  HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left"> 
                  <HeaderStyle CssClass="ms-vh2" Font-Bold="true"></HeaderStyle> 
                  <ItemStyle CssClass="ms-vb2"></ItemStyle> 
                 </asp:BoundField> 
                 <asp:BoundField DataField="Name" HeaderText="Form Type" HeaderStyle-HorizontalAlign="Left" 
                  ItemStyle-HorizontalAlign="Left"> 
                  <HeaderStyle CssClass="ms-vh2" Font-Bold="true"></HeaderStyle> 
                  <ItemStyle CssClass="ms-vb2"></ItemStyle> 
                 </asp:BoundField> 
                 <asp:TemplateField HeaderText="History"> 
                  <HeaderStyle CssClass="ms-vh2" Font-Bold="true"></HeaderStyle> 
                  <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="21px" CssClass="ms-vb2"> 
                  </ItemStyle> 
                  <ItemTemplate> 
                   <asp:LinkButton ID="lbtnView" runat="server" OnClick="lbtnView_Click" >View</asp:LinkButton> 
                  </ItemTemplate> 
                 </asp:TemplateField> 
                 <asp:TemplateField HeaderText="Application Id" Visible="False"> 
                  <ItemTemplate> 
                   <asp:Label ID="lblApplicationId" runat="server" Text='<%# Bind("ApplicationId") %>'></asp:Label> 
                  </ItemTemplate> 
                  <HeaderStyle HorizontalAlign="Left" CssClass="ms-vh2" Font-Bold="true" /> 
                  <ItemStyle HorizontalAlign="Left" CssClass="ms-vb2" /> 
                 </asp:TemplateField> 
                </Columns> 
               </SharePoint:SPGridView> 
              </ContentTemplate> 
             </asp:UpdatePanel> 

lorsque l'utilisateur clique sur le bouton de lien, ce code fonctionne ..

try 
      { 
       clearSession(); 
       Session["DigitalSignature"] = null; 
       Button btnDetails = sender as Button; 
       DataTable dt = (DataTable)dgApplicationBox.DataSource; 
       GridViewRow gvRow = (GridViewRow)(sender as LinkButton).Parent.Parent; 
       Session["AppId"] = ((Label)gvRow.FindControl("lblApplicationId")).Text; 
       string subject = ((LinkButton)gvRow.FindControl("lbtnSubject")).Text; 


       WFInfo objWFInfo = new WFInfo(); 
       objWFInfo.InitWorkflowProperty(Convert.ToInt32(Session["AppId"].ToString()), Session["CurrentUser"].ToString()); 
       Session["FormId"] = objWFInfo.FormID.ToString(); 

       string strFilname = objWFInfo.GetFormName(objWFInfo.ApplicationCategoryID.ToString()); 
       string WindowName = strFilname; 
       strFilname += ".aspx"; 
       Session["CategoryId"] = objWFInfo.ApplicationCategoryID.ToString(); 
       //pnlSubmitModal_ModalPopupExtender.Show(); 

       ScriptManager.RegisterStartupScript(this, this.GetType(), "starScript", "popUpWindow('" + strFilname + "?tittle=" + subject + "', 800, 690,'" + WindowName + "');", true); 

       this.Controls.Add(new LiteralControl("<script>alert('hi');</script>")); 

       if (Session["CurrentUser"] != null) 
       { 
        ApplicationForm objApplication = new ApplicationForm(); 
        objApplication.markRead(Convert.ToInt32(Session["AppId"].ToString()), Session["CurrentUser"].ToString()); 

       } 
       bindFolderData(); 
      } 

Si je clique sur le bouton de lien, il y aura être seulement post-retour. mais pas la fenêtre contextuelle ouverte .. S'il vous plaît aidez-moi pour résoudre ce problème. merci d'avance ..

Répondre

1

Avez-vous vérifié si vous recevez une erreur javascript sur le clic?

Avez-vous essayé de mettre à jour UpdateMode2 = "Conditionnel" de UpdatePanel2, puis d'ajouter des déclencheurs? (Clic bouton)

Comme cet exemple:

</ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="lbtnSubject" EventName="Click" /> 
    </Triggers> 
+0

j'ai eu une erreur comme ce Un contrôle avec l'ID « lbtnSubject » n'a pas pu être trouvé pour la détente dans UpdatePanel « UpdatePanel2 ». à System.Web.UI.UpdatePanelControlTrigger.FindTargetControl (Boolean searchNamingContainers) – MAC