2010-05-17 8 views
0

У меня есть одно пользовательское приложение для sharepoint, которое представляет собой рендеринг из пользовательского элемента управления. На странице управления пользователями я использовал SPGridview для отображения данных. Мой первый столбец - колонка заголовка (колонка с кнопками), когда пользователь нажимает на ссылку, затем открывается одно всплывающее окно с соответствующими данными. Но проблема в том, что кнопка ссылки работает неправильно. Но это приложение отлично работает в asp.net-приложении.SP Gridview ссылка колонка колонка не работает

Мой код показан ниже ..

<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> 

, когда пользователь нажимает на кнопку ссылки, этот код будет работает ..

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(); 
      } 

Если я нажимаю на кнопку ссылки, там будет быть только после назад. но не всплывающее окно открыто. Пожалуйста, помогите мне решить эту проблему. спасибо заранее.

ответ

1

Вы проверили, не получаете ли вы ошибку javascript на клике?

Вы пробовали установить UpdatePanel2 UpdateMode = "Условный", а затем добавить триггеры? (Кнопка мыши)

Как этот образец:

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

я получил одну ошибку, как этот элемент управления с 'lbtnSubject Ид не может быть найдено для триггера в UpdatePanel «UpdatePanel2». в System.Web.UI.UpdatePanelControlTrigger.FindTargetControl (логические поисковыеИнтернет-контейнеры) – MAC

Смежные вопросы