首先我建了一个有GRIDVIEW(vs2005)控件的用户控件.并写了GRIDVIEW中的RowDataBound和Rowcommand事件.列使用的是自定义列.里面放了一个LinkButton.
我在页面上使用         
UserControl controls = (UserControl)Page.LoadControl("UserControls/Sview.ascx");
this.form1.Controls.Add(controls);
在页面原中
<%@ Register Src="UserControls/SView.ascx" TagName="SView" TagPrefix="uc1" %>
能正常加载控件.RowDataBound事件也能进入.当我点击LinkButton的时候.RowCommand就不能进入.
在直接把用户控件拖入到页面上的时候有能正常使用.就如果通过代码加载就无法使用了.还忘高手指点迷津.
我是使用C#编写的.

解决方案 »

  1.   

    那样不行建一个模板列
    <asp:TemplateField HeaderText="删除">
                                                                                                                        <ItemTemplate>
                                                                                                                            <asp:ImageButton ID="btndelete" runat="server" CommandName="clickdelete" CommandArgument='<%#Eval("MedicineCondition_ID") %>'
                                                                                                                                CausesValidation="false" OnClientClick="return ConfirmDelete()" ImageUrl="~/Images/menu/items/up.jpg"
                                                                                                                                ToolTip="删除此用户" />
                                                                                                                        </ItemTemplate>
                                                                                                                        <ItemStyle CssClass="text" Width="6%" HorizontalAlign="Center" />
                                                                                                                    </asp:TemplateField>
    后台
      protected void GViewMedCondition_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "clickdelete")
            {
                MymedicineBF.MedicineInfoandConditionDelete(Convert.ToInt32(e.CommandArgument));
                BindGridView(GViewMedCondition, dt, Convert.ToInt32(HiddenFollowID.Value));
                this.divAddMedicine.Style.Value = "display: none";
            }
      

  2.   

    我把我的用户控件代码贴上。麻烦看一下使用有问题。我用的就是模板列
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="SView.ascx.cs" Inherits="UserControls_SView" %>
    <table>
        <tr>
            <td align="center" style="width: 100px; height: 20px;">
                收件箱 共几封 几封未读</td>
        </tr>
        <tr>
            <td style="width: 100px">
    <asp:GridView ID="GVSV" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False"
        CellPadding="4" DataSourceID="SNoteDataSource" EmptyDataText="没有邮件" ForeColor="#333333"
        GridLines="None" Height="63px" OnRowCommand="GVSV_RowCommand" OnRowDataBound="GVSV_RowDataBound"
        Width="547px">
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <Columns>
            <asp:TemplateField HeaderText="选择">
                <EditItemTemplate>
                    <asp:CheckBox ID="CheckBox1" runat="server" />
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:CheckBox ID="cbChoose" runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="日期" HeaderText="时间" />
            <asp:BoundField DataField="发送人" HeaderText="发件人" />
            <asp:TemplateField HeaderText="主题">
                <ItemTemplate>
                    <asp:LinkButton ID="MailLink" runat="server" OnClick="MailLink_Click" Text='<%# Eval("邮件主题") %>' CommandName="abc" OnCommand="abc"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="收件人" HeaderText="收件人" />
        </Columns>
        <RowStyle BackColor="#EFF3FB" />
        <EditRowStyle BackColor="#2461BF" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <AlternatingRowStyle BackColor="White" />
    </asp:GridView>
            </td>
        </tr>
        <asp:ObjectDataSource ID="SNoteDataSource" runat="server" OldValuesParameterFormatString="original_{0}"
        SelectMethod="GetMailDate" TypeName="GetMail"></asp:ObjectDataSource>
    </table>请高手指点