动态生成的datagrid控件删除链接中未调用经典ASP.NET Delete事件

我有一个经典的asp.net应用程序。我有一个DataGrid用户控件,其MarkUp数据源为:

<asp:SqlDataSource ID="DataSource" runat="server" DeleteCommand="UPDATE tblLSystem SET LS_Deleted='1' WHERE LS_ID=@LS_ID"
    SelectCommand="SELECT * FROM vwLSystem WHERE LS_Deleted='0' order by LS_CreatedOn" OnSelected="DataSource_Selected" OnDeleted="DataSource_Selected" OnDeleting = "DataSource_Deleting">
    <DeleteParameters>
        <asp:Parameter Name="LS_ID" Type="Object" />
    </DeleteParameters>
</asp:SqlDataSource>

删除链接按钮模板声明为:

<asp:TemplateField HeaderText="" SortExpression="" Visible="True"> 
    <ItemTemplate>
       <asp:LinkButton ID="btnDelete" CommandName="Delete" runat="server" Text="Delete" />
    </ItemTemplate>            
</asp:TemplateField>

类名后面的代码是“ class StudLSystemGrid”。并且此类中的DataSource_Deleting事件函数是:

protected void DataSource_Deleting(object sender, SqlDataSourceCommandEventArgs e)
{
}

此用户控件在另一个asp.net页中使用。它在页面中注册为:

<%@ Register Src="Controls/LSystemGrid.ascx" TagName="LSystemGrid" TagPrefix="uc4" %>

在同一页面中,它用于静态创建一个用户控件,如下所示:

  <uc4:LSystemGrid ID="LSystemGrid1" runat="server" ShowAuditFields="false" />

我还需要根据后面的代码中的情况动态创建多个用户控件。所以我在MarkUp页面中有一个占位符:

  <asp:PlaceHolder id="PlaceHolder1" runat="server"/>

并在代码后面的相同代码中生成用户控件:

    ucLControl =
      LoadControl("Controls/LSystemGrid.ascx")
      as StudLSystemGrid;
    ucLControl.ID = "LSystemGridPD" + i.ToString();
    ucLControl.ShowAuditFields = false;
    ucLControl.SqlDataSource.ConnectionString = ConnectionManager.ConnectionString;
    ucLControl.DataBind();
    PlaceHolder1.Controls.Add(ucLControl);

静态生成的用户控件工作正常。单击删除链接可以调用前面提到的函数“ DataSource_Deleting”。但是,动态生成的用户控件不起作用。函数“ DataSource_Deleting”未命中,并且该项目无法删除。

静态标记用户控件中的delete链接的html源是:

       <a onclick="{alert('There'); return false;} ;" 
id="ctl00_PageBody_LSystemGrid1_BaseGrid_ctl02_btnDelete" 
href="javascript:__doPostBack('ctl00$PageBody$LSystemGrid1$BaseGrid$ctl02$btnDelete','')">Delete</a>

对于动态生成的用户控件,其背后的代码是:

       <a onclick="{alert('Here'); return false;} ;" 
id="LSystemGridPD0_BaseGrid_ctl13_btnDelete" 
href="javascript:__doPostBack('LSystemGridPD0$BaseGrid$ctl13$btnDelete','')">Delete</a>

有人知道这是怎么回事吗?在后面的代码中以这种方式使用delete linkbutton时,如何确定datagrid处于删除模式?

谢谢

更新:用户控件是通过-动态生成的

protected void Page_Load(object sender, EventArgs e)
{
    PreRender += LSystem_PreRender;    
}

void LSystem_PreRender(object sender, EventArgs e)
{
    ucLControl =
      LoadControl("Controls/LSystemGrid.ascx")
      as StudLSystemGrid;
    ucLControl.ID = "LSystemGridPD0";
    ucLControl.ShowAuditFields = false;
    ucLControl.SqlDataSource.ConnectionString = ConnectionManager.ConnectionString;
    ucLControl.DataBind();
    PlaceHolder1.Controls.Add(ucLControl);
}

更新2:

更新2:用户控件是通过-动态生成的

protected void Page_Load(object sender, EventArgs e)
{
    ucLControl =
      LoadControl("Controls/LSystemGrid.ascx")
      as StudLSystemGrid;
    ucLControl.ID = "LSystemGridPD0";
    ucLControl.ShowAuditFields = false;
    ucLControl.SqlDataSource.ConnectionString = ConnectionManager.ConnectionString;
    ucLControl.EnableViewState = true;
    ucLControl.DataBind();
    PlaceHolder1.Controls.Add(ucLControl);
}

找出问题所在。数据绑定后

   ucLControl = LoadControl("Controls/LSystemGrid.ascx")       as StudLSystemGrid;

调用ucLControl.DataBind(); 再次擦除边界属性。

删除“ ucLControl.DataBind();”行后,可以触发删除事件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

动态生成的datagrid控件删除链接中未调用经典ASP.NET Delete事件

来自分类Dev

命令事件未触发asp.net来动态创建控件

来自分类Dev

ASP.Net:动态引发的嵌套更新面板中的动态按钮的单击事件未引发

来自分类Dev

PowerShell中的.NET事件

来自分类Dev

PowerShell中的.NET事件

来自分类Dev

ASP.NET中的页面/控件事件冒泡方向

来自分类Dev

ASP.NET DataGrid ItemDataBound事件

来自分类Dev

ASP.NET按钮未调用事件

来自分类Dev

在ASP.NET MVC 5中未调用Azure RoleEnvironment.Changing事件

来自分类Dev

asp.net按钮事件未触发

来自分类Dev

jQuery事件与.NET中的Load事件相同

来自分类Dev

处理包含动态生成按钮的自定义控件上的单击事件 vb.net

来自分类Dev

将事件委托添加到ASP.NET用户控件的事件处理程序中

来自分类Dev

选定索引事件后动态控件CheckBoxList丢失样式-ASP.Net C#

来自分类Dev

动态创建的 html 控件 - 检测点击事件?ASP.NET C#

来自分类Dev

ASP.NET WebForms中的异步事件

来自分类Dev

ASP.NET中TextBox的KeyPress事件

来自分类Dev

VB.NET WebBrowser控件OnClick事件未触发

来自分类Dev

如何为asp.net控件选择其他事件

来自分类Dev

.NET用户控件事件冒泡

来自分类Dev

.NET表单-禁用控件丢失事件

来自分类Dev

VB .NET控件的事件处理程序

来自分类Dev

使用单个事件处理程序asp.net处理网格中的多个删除事件

来自分类Dev

当我单击gridview中的“编辑”按钮时,如何调用“删除行”事件?asp.net C#

来自分类Dev

动态生成的Linkbutton不会触发Onclick事件VB.Net

来自分类Dev

如何在Asp.net中的DataGrid中动态更改超链接颜色

来自分类Dev

ASP NET自定义服务器控件中的事件

来自分类Dev

当用户控件完成在ASP.NET中的加载时,将事件触发到父页面

来自分类Dev

ASP NET自定义服务器控件中的事件

Related 相关文章

  1. 1

    动态生成的datagrid控件删除链接中未调用经典ASP.NET Delete事件

  2. 2

    命令事件未触发asp.net来动态创建控件

  3. 3

    ASP.Net:动态引发的嵌套更新面板中的动态按钮的单击事件未引发

  4. 4

    PowerShell中的.NET事件

  5. 5

    PowerShell中的.NET事件

  6. 6

    ASP.NET中的页面/控件事件冒泡方向

  7. 7

    ASP.NET DataGrid ItemDataBound事件

  8. 8

    ASP.NET按钮未调用事件

  9. 9

    在ASP.NET MVC 5中未调用Azure RoleEnvironment.Changing事件

  10. 10

    asp.net按钮事件未触发

  11. 11

    jQuery事件与.NET中的Load事件相同

  12. 12

    处理包含动态生成按钮的自定义控件上的单击事件 vb.net

  13. 13

    将事件委托添加到ASP.NET用户控件的事件处理程序中

  14. 14

    选定索引事件后动态控件CheckBoxList丢失样式-ASP.Net C#

  15. 15

    动态创建的 html 控件 - 检测点击事件?ASP.NET C#

  16. 16

    ASP.NET WebForms中的异步事件

  17. 17

    ASP.NET中TextBox的KeyPress事件

  18. 18

    VB.NET WebBrowser控件OnClick事件未触发

  19. 19

    如何为asp.net控件选择其他事件

  20. 20

    .NET用户控件事件冒泡

  21. 21

    .NET表单-禁用控件丢失事件

  22. 22

    VB .NET控件的事件处理程序

  23. 23

    使用单个事件处理程序asp.net处理网格中的多个删除事件

  24. 24

    当我单击gridview中的“编辑”按钮时,如何调用“删除行”事件?asp.net C#

  25. 25

    动态生成的Linkbutton不会触发Onclick事件VB.Net

  26. 26

    如何在Asp.net中的DataGrid中动态更改超链接颜色

  27. 27

    ASP NET自定义服务器控件中的事件

  28. 28

    当用户控件完成在ASP.NET中的加载时,将事件触发到父页面

  29. 29

    ASP NET自定义服务器控件中的事件

热门标签

归档