Need help with a custom control and a datagrid

L

Luis Alonso

Hi,
I had created a web custom control to ask for user' confirmation on deleting
and others process. I put the control in a vb file.
The control is really simple: only an image button and a hidden panel to
show a wait message....
The control has a PreRender (with a RegsiterClientScriptBlock) event and a
Render event (that writes the control)
I put the control on a datagrid.
The control asks confirmation fine and I'm able to retrieve (in
ItemDataBound, por example) the control, to make it enabled or not, to show
it or not.
The problem is that the control does not launch the ItemCommand event in the
datagrid. So I'm not able to process the request after the user'
confirmation.
This is what I have done so far:

'vb: GridControls
Namespace GridControls
public class ctrConfirmButton
public ConfirmMessage as string =""
public CommandName as string = ""
public Imagen as string = ""
public ToolTip as string = ""
public Enabled as boolean = False

protected overrides sub OnPreRender(ByVal e As System.EventArgs)
dim sScript as string = "" _
"<script language='javascript'>" & _
"function __" & me.id & "_doConfirm() {" & _
"if (confirm('" & ConfirmMessage & "')) {return true;}
return false; }" & _
"</script>"

page.RegsiterClientScriptBlock("__" & me.id & "_doConfirm",
sScript)
myBase.OnPreRender(e)
end sub

protected overrides sub Render(ByVal writer as
System.Web.UI.HtmlTextWriter)
dim sDisabled as string = "disabled='disabled' "

if Enabled then sDisabled = ""

writer.write("<input type='image' id= '" & me.id & "_" &
CommandName & "' title= '" & ToolTip & "' src='" & Imagen & "' alt=''
border='0' " _
sDisabled & _
"onclick='return __" & me.id & "_doConfirm();' >"
end sub
end class
end namespace

'Page
<%@ Register TagPrefix= "CtrlsGrid" NameSpace="ControlsProj:GridControls"
Assably="ControlsProj" %>

'.....

<asp:templatecolumn>
<CtrlsGrid:ctrConfirmButton runat="server"
id="MyID"
CommandName="Delete"
ConfirmMessage="The message"
Image="Iconos/..."
ToolTip="The Tooltip"
Enabled="True"</CtrlsGrid:ctrConfirmButton>
</asp:templatecolumn>

'Codebehind
private sub MyItemDataBound(ByVal Sender as object, e as
system.web.ui.webcontrols.DataGridItemEventArgs) Handles
DataGrid1.ItemDataBound
select case e.item.ItemType
case ListItemType.Item
dim myControl as ControlsProj.GridControls.ctrConfirmButton =
ctype(e.item.FindControl("MyID"),
ControlsProj.GridControls.ctrConfirmButton)
if not myControl is nothing then myControl .Enabled = True
case ListItemType.AlternatingiItem
dim myControl as ControlsProj.GridControls.ctrConfirmButton =
ctype(e.item.FindControl("MyID"),
ControlsProj.GridControls.ctrConfirmButton)
if not myControl is nothing then myControl .Enabled = False
end select
end sub

private sub MyItemCommand(ByVal Sender as object, e as
system.web.ui.webcontrols.DataGridCommanEventArgs) handles
DataGrid1.ItemCommad
me.DataGrid1.DataBind()
end sub


The last sub is not getting launch. There is something that I'm missing and
I cannot make a connection between the datagrid and the control.

THX, in advance
Luis Alonso
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,235
Members
46,821
Latest member
AleidaSchi

Latest Threads

Top