首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于自动触发linkbutton onclick事件解决办法

2012-05-20 
关于自动触发linkbutton onclick事件详细请看如下。主页面有2个webcontrol。Detail 和 summary主页部分:HTML

关于自动触发linkbutton onclick事件
详细请看如下。主页面有2个webcontrol。Detail 和 summary
主页部分:

HTML code
<tr>                        <td colspan="2">                            <asp:LinkButton ID="lnkbtnAddItem" runat="server" OnClick="lnkbtnAddItem_Click">Add Item</asp:LinkButton>                            &nbsp;                            <asp:LinkButton ID="lnkbtnUpdate" runat="server" OnClick="lnkbtnUpdate_Click">Update</asp:LinkButton>                        </td>                    </tr>                    <tr>                        <td colspan="2">                            <asp:UpdatePanel ID="updatepanel1" runat="server" UpdateMode="Always">                                <ContentTemplate>                                    <table cellpadding="0" cellspacing="0" width="100%">                                        <tr>                                            <td>                                                <cc1:TabContainer ID="TabContainerADMF07" runat="server" Width="100%">                                                    <cc1:TabPanel runat="server" HeaderText="" ID="TabPanelADMF07Detail">                                                        <HeaderTemplate>                                                            Details                                                        </HeaderTemplate>                                                        <ContentTemplate>                                                            <uc1:uc_ADM_F07Detail ID="uc_ADM_F07Detail1" runat="server" />                                                        </ContentTemplate>                                                    </cc1:TabPanel>                                                    <cc1:TabPanel runat="server" HeaderText="" ID="TabPanelADMF07Summary">                                                        <HeaderTemplate>                                                            Summary                                                        </HeaderTemplate>                                                        <ContentTemplate>                                                            <uc2:uc_ADM_F07Summary ID="uc_ADM_F07Summary1" runat="server" />                                                        </ContentTemplate>                                                    </cc1:TabPanel>                                                </cc1:TabContainer>                                            </td>                                        </tr>                                    </table>                                </ContentTemplate>                                <Triggers>                                    <asp:AsyncPostBackTrigger ControlID="lnkbtnUpdate" EventName="Click" />                                </Triggers>                            </asp:UpdatePanel>                        </td>                    </tr>


Detail页面部分(就一个gridview控件):
HTML code
<asp:GridView ID="grdviewadmf07_dtl" runat="server" Width="100%" AutoGenerateColumns="False"                DataKeyNames="netno" AllowPaging="True" AllowSorting="false" OnPageIndexChanging="grdviewadmf07_dtl_PageIndexChanging"                OnRowCommand="grdviewadmf07_dtl_RowCommand" OnSorting="grdviewadmf07_dtl_Sorting"                OnRowDataBound="grdviewadmf07_dtl_OnRowDataBound" OnRowDeleting="grdviewadmf07_dtl_OnRowDeleting"                PageSize="20">                <Columns>                    <asp:TemplateField ShowHeader="False">                        <ItemTemplate>                            <asp:LinkButton ID="lnkbtnDelete" runat="server" CausesValidation="false" OnClientClick='return confirm("Are you sure your want to delete this record?");'                                CommandName="Delete" Text="Delete"></asp:LinkButton>                        </ItemTemplate>                    </asp:TemplateField>                    <asp:ButtonField CommandName="Open" Text="Open" />                    <asp:ButtonField CommandName="View" DataTextField="netno" HeaderText="Client Code"                        SortExpression="netno" />                    <asp:BoundField DataField="CategoryName" HeaderText="Category" SortExpression="CategoryName" />                    <asp:TemplateField HeaderText="Total Hrs.">                        <ItemTemplate>                            <asp:Label ID="lbltotalhours" runat="server" Text='<%#Eval("total") %>'></asp:Label>                        </ItemTemplate>                    </asp:TemplateField>                    <asp:TemplateField>                        <HeaderTemplate>                            1(<asp:Label ID="lbltotalday1" runat="server"></asp:Label>)                        </HeaderTemplate>                        <ItemTemplate>                            <asp:TextBox ID="txtday1" runat="server" Width="30px" onkeypress="isNum();" OnTextChanged="txtDay_OntextChanged"                                AutoPostBack="true" Text='<%#Eval("day1") %>'></asp:TextBox>                        </ItemTemplate>                    </asp:TemplateField>                    <asp:TemplateField>                        <HeaderTemplate>                            2(<asp:Label ID="lbltotalday2" runat="server"></asp:Label>)                        </HeaderTemplate>                        <ItemTemplate>                            <asp:TextBox ID="txtday2" runat="server" Width="30px" onkeypress="isNum();" OnTextChanged="txtDay_OntextChanged"                                AutoPostBack="true" Text='<%#Eval("day2") %>'></asp:TextBox>                        </ItemTemplate>                    </asp:TemplateField> 




我想实现的功能是这样的:在gridview里面 填数据,填好后gridview里面有些label值会自动更新。而且有部分label值要传给“webcontrol页面(Summary)”里面。我写了个Update控件事件已经写好。只要我点一下"Update",Summary页面的值才会更新。否则不会。
所以我就想:如果webcontrol页面(Detail)里面的值更新后,“webcontrol页面(Summary)”里面也会自动更新。那就是自动触发Update onclick事件。不需要手动点击。


接下来问题来了:我在webcontrol页面(Detail)后台代码如下:
C# code
Response.Write("<script>self.opener.document.getElementById('ctl00_ContentPlaceHolder_Main_lnkbtnUpdate').click();</script>");


主页面前台我也加了
HTML code
<Triggers>                                    <asp:AsyncPostBackTrigger ControlID="lnkbtnUpdate" EventName="Click" />                                </Triggers>


但是不行。不能自动触发。错误如下:
Sys.WebForms.PageRequestManagerParserErrorException: 无法分析从服务器收到的消息。之所以出现此错误,常见的原因是: 在通过调用 Response.Write() 修改响应时,将启用响应筛选器、HttpModule 或服务器跟踪。
详细信息: 分析附近的“<script>self.opener.”时出错

求各位大侠指点。



[解决办法]
C# code
ScriptManager.RegisterStartupScript(updatepanel1, GetType(), "click", "document.getElementById('ctl00_ContentPlaceHolder_Main_lnkbtnUpdate').click();", true); 

热点排行