Datalist的代码:
<asp:datalist id="mydatalist"
cellpadding=10
cellspacing=0
gridlines="both"
runat="server"
repeatdirection="horizontal"
datakeyfield="id"
oneditcommand="editedit"
oncancelcommand="canceledit"
onupdatecommand="updateedit"
ondeletecommand="deleteedit"
OnItemCreated="DataGrid_ItemCreated" >
<itemtemplate>
<td><%# whatstring(container.dataitem("myname"))%></td><td><%# whatstring(container.dataitem("mytext"))%></td><td><asp:linkbutton text="编辑" commandname="edit" runat=server /></td>
</itemtemplate>
<edititemtemplate>
姓名:<asp:textbox id="editname" text='<%# whatstring(container.dataitem("myname"))%>' runat=server /><BR>
留言:<asp:textbox id="edittext" text='<%# whatstring(container.dataitem("mytext"))%>' runat=server /><BR>
<asp:button text="更新" commandname="update" runat=server />
<asp:button text="删除" commandname="delete" runat=server id="Button1"/>
<asp:button text="取消" commandname="cancel" runat=server />
</edititemtemplate>
</asp:datalist>
+++++++++++++++++++++++++++++++
我问了,有人回答如下:
方法(1)在Page_load中加入Button1.Attributes.Add("OnClick", "Javascript:return confirm('这里填入你想写的内容');")
这句话,但明显不行,因为Page_load的时候Button1还不存在
方法(2)
用这个
Sub DataGrid_ItemCreated(Sender As Object, e As DatalistItemEventArgs) Select Case e.Item.ItemType
Case ListItemType.Item, ListItemType.AlternatingItem
Dim myDeleteButton As Button
myDeleteButton = e.Item.FindControl("button1")
myDeleteButton.Attributes.Add("onclick","return confirm('Are you Sure you want to delete this company?');") End Select End Sub
可是出错:
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
指示这行:myDeleteButton.Attributes.Add("onclick","return confirm('Are you Sure you want to delete this record?');") 求求高手来救救我吧!!
<asp:datalist id="mydatalist"
cellpadding=10
cellspacing=0
gridlines="both"
runat="server"
repeatdirection="horizontal"
datakeyfield="id"
oneditcommand="editedit"
oncancelcommand="canceledit"
onupdatecommand="updateedit"
ondeletecommand="deleteedit"
OnItemCreated="DataGrid_ItemCreated" >
<itemtemplate>
<td><%# whatstring(container.dataitem("myname"))%></td><td><%# whatstring(container.dataitem("mytext"))%></td><td><asp:linkbutton text="编辑" commandname="edit" runat=server /></td>
</itemtemplate>
<edititemtemplate>
姓名:<asp:textbox id="editname" text='<%# whatstring(container.dataitem("myname"))%>' runat=server /><BR>
留言:<asp:textbox id="edittext" text='<%# whatstring(container.dataitem("mytext"))%>' runat=server /><BR>
<asp:button text="更新" commandname="update" runat=server />
<asp:button text="删除" commandname="delete" runat=server id="Button1"/>
<asp:button text="取消" commandname="cancel" runat=server />
</edititemtemplate>
</asp:datalist>
+++++++++++++++++++++++++++++++
我问了,有人回答如下:
方法(1)在Page_load中加入Button1.Attributes.Add("OnClick", "Javascript:return confirm('这里填入你想写的内容');")
这句话,但明显不行,因为Page_load的时候Button1还不存在
方法(2)
用这个
Sub DataGrid_ItemCreated(Sender As Object, e As DatalistItemEventArgs) Select Case e.Item.ItemType
Case ListItemType.Item, ListItemType.AlternatingItem
Dim myDeleteButton As Button
myDeleteButton = e.Item.FindControl("button1")
myDeleteButton.Attributes.Add("onclick","return confirm('Are you Sure you want to delete this company?');") End Select End Sub
可是出错:
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
指示这行:myDeleteButton.Attributes.Add("onclick","return confirm('Are you Sure you want to delete this record?');") 求求高手来救救我吧!!
解决方案 »
- ASP.NET如何在页面中遍历数组
- 获得不了上传控件的个数
- 200分。高分。用JS控制treeview里的checkbox选中父接点,子结点也选种,取消父接点,子结点也取消的问题,解决了我再开帖放分
- 想自己些点东西,又不知道写什么
- 邮件发问题??我已经用了验证了,为什么还是收不到。。。。。
- MVC4设置RouteConfig优化url的问题 求教。
- 怎样实现两个页面间的互相控制?
- 如何在asp.net中的让web控件调用JavaScript函数
- 不行了,各位帮帮忙呀!!关于DataGrid得到被选择行的问题
- 在Web页面如何动态生成控件?(只要解决问题,立刻给分!)
- VS2005中文版哪有免费的下载
- <tr id="tr0" runat="server" > <td></td> </tr> 区块怎么在程序中设置CSS风格
Dim myDeleteButton As Button
myDeleteButton = e.Item.FindControl("button1")
myDeleteButton.Attributes.Add("onclick","return confirm('Are you Sure you want to delete this company?');") End if End Sub
也就是 e.Item.ItemType 是ListItemType.Item或者交替列 才可以
否则 在header内没有button
myDeleteButton = e.Item.FindControl("button1")
的结果就是null
也就是 未将对象饮用设置到对象的实例了
应该if ( e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem )
{
Button btn = e.Item.Findcontrol("btnId") as Button;
if( btn != null)
{
btn.attributes["onclick"] = "return confirm('xx');";
}
button不是由clientonclick事件么?
ClientOnClick="return confirm('xx')"
服务器端的button完全可以写一个client click事件,再写一个server的click事件,完全不冲突。
if ( e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem )
{
((Button)e.Item.FindControl["xx"]).Attributes.Add("onclick", "return confirm('这里填入你想写的内容');") ;
}
2003下
if ( e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem )
{
Button btn = e.Item.Findcontrol("btnId") as Button;
if( btn != null)
{
btn.attributes["onclick"] = "return confirm('xx');";
}
Button butDel=(Button)e.Item.FindControl("butdel");butDel.Attributes.add("onclick","javascript:if(confirm('Do Your Delete Recored!')==false) return false;");
Sub DataGrid_ItemCreated(Sender As Object, e As DatalistItemEventArgs) if e.Item.ItemType = ListItemType.Edit then
Dim myDeleteButton As Button
myDeleteButton = e.Item.FindControl("button1")
myDeleteButton.Attributes.Add("onclick","return confirm('Are you Sure you want to delete this company?');") End if End Sub
+++++++++++++++++++++++++++Compiler Error Message: BC30456: 'Edit' is not a member of 'System.Web.UI.WebControls.ListItemType'.Source Error: Line 120:Sub DataGrid_ItemCreated(Sender As Object, e As DatalistItemEventArgs)
Line 121:
Line 122: if e.Item.ItemType = ListItemType.Edit then
Line 123: Dim myDeleteButton As Button
Line 124: myDeleteButton = e.Item.FindControl("button1")
错误指向if e.Item.ItemType = ListItemType.Edit then
很感谢你的回复,可是我的标题表明了需要vb语言,谢谢。
你所说的ClientOnClick="return confirm('xx')"
完全不起作用。
不是太明白您的写法,是这样吗?
在Datalist中加入onItmeDataBound="givebutton"
然后在vb中
Sub givebutton(Sender As Object, e As DatalistItemEventArgs) Button butDel=(Button)e.Item.FindControl("button1"); butDel.Attributes.add("onclick","javascript:if(confirm('Do Your Delete Recored!')==false) return false;");
End Sub
如果是这样,也出错:
Compiler Error Message: BC30684: 'Button' is a type and cannot be used as an expression.Source Error: Line 119:Sub givebutton(Sender As Object, e As DatalistItemEventArgs)
Line 120:
Line 121: Button butDel=(Button)e.Item.FindControl("button1");
Line 122:
Line 123:butDel.Attributes.add("onclick","javascript:if(confirm('Do Your Delete Recored!')==false) return false;");
指向121谢谢各位,加油
private void cList_ItemCreated(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if ((e.Item.ItemType!=ListItemType.Footer)&&(e.Item.ItemType!=ListItemType.Header)&&(e.Item.ItemType!=ListItemType.Pager))
{
Button myDelButton = (Button)e.Item.FindControl("btnDel");
myDelButton.Attributes.Add("onclick","return confirm(' 删除该分类以及下级所有分类 \\n\\n 操作不能撤销是否继续?')");
}
}
Datalist自己改一下
欢迎继续讨论你的写法。
if e.Item.ItemType = ListItemType.Edit then
呵呵,不好意思,我直言了。