Tag Archives: MVP

DotNetNuke MVP Module Development: Tip #2 Disable AutoDataBind

In DotNetNuke MVP Module Development: Tip #1 The AutoDataBind Property I suggested to use AutoDatBind to automatically bind up the user control.  However, there are times when no binding should occur.  For example, when a Cancel button is clicked the view should not be bound.  AutoDataBind should be disabled when no model is need.

protected void cmdCancel_Click(object sender, EventArgs e)
{
    try
    {
        AutoDataBind = false;
        OnCancel();
    }
    catch (Exception exc)
    {
        Exceptions.ProcessModuleLoadException(this, exc);
    }
}

DotNetNuke MVP Module Development: Tip #1 The AutoDataBind Property

The DotNetNuke.Web.Mvp.ModuleViewBase sets a property called AutoDataBind = true. As a result the DataBind() method for the page is always called in the Page_PreRenderComplete event.

If you use the following familiar snippet of code you find that your controls will be data bound twice. Once when your code calls DataBind() and a second time when it is called during the Page_PreRenderComplete event.

ddlStatus.DataSource = Model.StatusList;
ddlStatus.DataBind();

Here is an example of how to properly bind a DropDownList for an MVP based module.

<asp:DropDownList ID="ddlStatus" runat="server"
    DataSource='<%#Model.StatusList%>'
    DataTextField="Description"
    DataValueField="Id"
SelectedValue='<%#Model.Post.PostStatus %>'> </asp:DropDownList>

It is important to point out again that you should not call ddlStatus.DataBind() from the code behind. Calling this is a waste because the AutoDataBind property is going to force everything to rebind again during Page_PreRenderComplete.