代码之家  ›  专栏  ›  技术社区  ›  Richard Neil Ilagan

asp:Button is 不调用服务器端函数

  •  4
  • Richard Neil Ilagan  · 技术社区  · 16 年前

    我正在实例化一个asp:Button inside 数据绑定asp:GridView through 模板字段。有些按钮应该调用服务器端函数,但由于一些奇怪的原因,它没有。当你点击这些按钮时,所有的按钮都会触发一个到当前页面的回发,什么都不做,实际上只是重新加载页面。

    <asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" CssClass="l2 submissions" ShowHeader="false">
        <Columns>      
    
            <asp:TemplateField>            
                <ItemTemplate><asp:Panel ID="swatchpanel" CssClass='<%# Bind("status") %>' runat="server"></asp:Panel></ItemTemplate>                
                <ItemStyle Width="50px" CssClass="sw" />
            </asp:TemplateField>
    
            <asp:BoundField DataField="description" ReadOnly="true">                                
            </asp:BoundField>
    
            <asp:BoundField DataField="owner" ReadOnly="true">
                <ItemStyle Font-Italic="true" />
            </asp:BoundField>
    
            <asp:BoundField DataField="last-modified" ReadOnly="true">
                <ItemStyle Width="100px" />
            </asp:BoundField>
    
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Button ID="viewBtn" cssclass='<%# Bind("sid") %>' runat="server" Text="View" OnClick="viewBtnClick" />
                </ItemTemplate>
            </asp:TemplateField>                                         
    
        </Columns>
    </asp:GridView>
    

    上面的viewBtn应该在服务器端调用viewBtnClick()函数。我已经定义了这个函数,还有一个适当的签名(object,EventArgs)。值得注意的一点是,这段代码实际上在一个ASCX中,它被加载到另一个ASCX中,最后被加载到一个ASPX中。

    对此事的任何帮助或见解都将不胜感激。谢谢!

    (哦,请不要介意我无用的HTML/CSS语义-这还处于非常非常早期的阶段:p)

    2 回复  |  直到 16 年前
        1
  •  3
  •   Tejs    16 年前

        2
  •  3
  •   Dan Davies Brackett    16 年前

    如果您的GridView在页面预呈现期间被数据绑定,则asp:button in 处理回发事件时不存在问题。

    尝试在页面加载期间绑定gridview,或使用gridview的 OnItemCommand OnClick .

    推荐文章