SP Gridview链接按钮列不起作用

时间:2010-05-17 06:23:03

标签: c# asp.net sharepoint sharepoint-2007 spgridview

我有一个从用户控件渲染的sharepoint自定义页面应用程序。在用户控制页面中,我使用了SPGridview来显示数据。我的第一列是Title Column(链接按钮列),当用户单击链接时,将打开一个弹出窗口,其中包含相应的数据。但问题是链接按钮无法正常工作。但是这个应用程序在asp.net应用程序中运行良好。

我的代码如下所示..

 <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 个答案:

答案 0 :(得分:1)

您是否检查过点击时是否收到javascript错误?

您是否尝试过设置UpdatePanel2的UpdateMode =“Conditional”然后添加触发器? (按钮点击)

喜欢这个样本:

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