e.CommandName is = "". Why?

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hello all, I've pasted in my code that doesn't seem to work. I can raise the
grdLinks_ItemCommand event, but for some reason e.CommandName is = "", event
though in gdrLink_ItemDataBound I'm setting it to be AddFAQ. WHy is that?

Thanks,
namespace HotLinks
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class ChooseHotlinks : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid grdLinks;
protected System.Web.UI.WebControls.DataGrid grdHotLinks;
protected System.Web.UI.WebControls.Repeater rptLinkTypes;

private int HotLinkTypeID;

private void Page_Load(object sender, System.EventArgs e)
{
HotLinkTypeID = Convert.ToInt32(Request.QueryString["hotlinktypeid"]);

if(!Page.IsPostBack)
{
BindLinkTypes();

if(HotLinkTypeID != 0)
{
BindLinksGrid(HotLinkTypeID);
}
}
}

private void BindLinkTypes()
{
rptLinkTypes.DataSource = new HotLinks().GetAllHotLinkTypes();
rptLinkTypes.DataBind();
}

private void BindLinksGrid(int LinkType)
{
switch (LinkType)
{
case 1:
grdLinks.DataSource = new HotLinks().GetAllFAQs();
BoundColumn faqID = new BoundColumn();
BoundColumn Question = new BoundColumn();

faqID.DataField = "faqID";
faqID.HeaderText = "ID";
Question.DataField = "faqQuestion";
Question.HeaderText = "Question";

grdLinks.Columns.AddAt(0, faqID);
grdLinks.Columns.AddAt(1, Question);
break;

case 2:
grdLinks.DataSource = new HotLinks().GetAllNews();
BoundColumn newsID = new BoundColumn();
BoundColumn Headline = new BoundColumn();

newsID.DataField = "newsID";
newsID.HeaderText = "ID";
Headline.DataField = "newsHeadline";
Headline.HeaderText = "Headline";

grdLinks.Columns.AddAt(0, newsID);
grdLinks.Columns.AddAt(1, Headline);
break;

case 3:
grdLinks.DataSource = new HotLinks().GetAllEvents();
BoundColumn eventID = new BoundColumn();
BoundColumn Name = new BoundColumn();

eventID.DataField = "eventID";
eventID.HeaderText = "ID";
Name.DataField = "eventName";
Name.HeaderText = "Name";

grdLinks.Columns.AddAt(0, eventID);
grdLinks.Columns.AddAt(1, Name);
break;
}
grdLinks.DataBind();
}

private void BindHotLinksGrid()
{

}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.rptLinkTypes.ItemDataBound += new
System.Web.UI.WebControls.RepeaterItemEventHandler(this.rptLinkTypes_ItemDataBound);
this.grdLinks.ItemCommand += new
System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdLinks_ItemCommand);
this.grdLinks.ItemDataBound += new
System.Web.UI.WebControls.DataGridItemEventHandler(this.grdLinks_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void rptLinkTypes_ItemDataBound(object sender,
System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

HyperLink lnkHotLinksType =
(HyperLink)e.Item.FindControl("lnkHotLinkType");

lnkHotLinksType.Text = dataRowView["Type"].ToString();
lnkHotLinksType.NavigateUrl = "ChooseHotlinks.aspx?hotlinktypeid=" +
dataRowView["ID"].ToString();
}
}

private void grdLinks_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

ImageButton imgAddHotLink =
(ImageButton)e.Item.FindControl("imgAddHotLink");

imgAddHotLink.CommandName = "AddFAQ";
}
}

private void grdLinks_ItemCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
switch (e.CommandName)
{
case "AddFAQ":

break;

case "AddNews":

break;

case "AddEvent":

break;
}
BindLinksGrid(HotLinkTypeID);
}
}
}
 
I assume that you set CommandName="AddFAQ" as property of the DataGrid. You
have to set the CommandName as property of the control that causes the
command inside the datagrid - LinkButton, Button or whatever it is.

Hope that helps!
Regards,
Kostadin Kostov

Jon said:
Hello all, I've pasted in my code that doesn't seem to work. I can raise the
grdLinks_ItemCommand event, but for some reason e.CommandName is = "", event
though in gdrLink_ItemDataBound I'm setting it to be AddFAQ. WHy is that?

Thanks,
namespace HotLinks
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class ChooseHotlinks : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid grdLinks;
protected System.Web.UI.WebControls.DataGrid grdHotLinks;
protected System.Web.UI.WebControls.Repeater rptLinkTypes;

private int HotLinkTypeID;

private void Page_Load(object sender, System.EventArgs e)
{
HotLinkTypeID = Convert.ToInt32(Request.QueryString["hotlinktypeid"]);

if(!Page.IsPostBack)
{
BindLinkTypes();

if(HotLinkTypeID != 0)
{
BindLinksGrid(HotLinkTypeID);
}
}
}

private void BindLinkTypes()
{
rptLinkTypes.DataSource = new HotLinks().GetAllHotLinkTypes();
rptLinkTypes.DataBind();
}

private void BindLinksGrid(int LinkType)
{
switch (LinkType)
{
case 1:
grdLinks.DataSource = new HotLinks().GetAllFAQs();
BoundColumn faqID = new BoundColumn();
BoundColumn Question = new BoundColumn();

faqID.DataField = "faqID";
faqID.HeaderText = "ID";
Question.DataField = "faqQuestion";
Question.HeaderText = "Question";

grdLinks.Columns.AddAt(0, faqID);
grdLinks.Columns.AddAt(1, Question);
break;

case 2:
grdLinks.DataSource = new HotLinks().GetAllNews();
BoundColumn newsID = new BoundColumn();
BoundColumn Headline = new BoundColumn();

newsID.DataField = "newsID";
newsID.HeaderText = "ID";
Headline.DataField = "newsHeadline";
Headline.HeaderText = "Headline";

grdLinks.Columns.AddAt(0, newsID);
grdLinks.Columns.AddAt(1, Headline);
break;

case 3:
grdLinks.DataSource = new HotLinks().GetAllEvents();
BoundColumn eventID = new BoundColumn();
BoundColumn Name = new BoundColumn();

eventID.DataField = "eventID";
eventID.HeaderText = "ID";
Name.DataField = "eventName";
Name.HeaderText = "Name";

grdLinks.Columns.AddAt(0, eventID);
grdLinks.Columns.AddAt(1, Name);
break;
}
grdLinks.DataBind();
}

private void BindHotLinksGrid()
{

}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.rptLinkTypes.ItemDataBound += new
System.Web.UI.WebControls.RepeaterItemEventHandler(this.rptLinkTypes_ItemDataBound);
this.grdLinks.ItemCommand += new
System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdLinks_ItemCommand);
this.grdLinks.ItemDataBound += new
System.Web.UI.WebControls.DataGridItemEventHandler(this.grdLinks_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void rptLinkTypes_ItemDataBound(object sender,
System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

HyperLink lnkHotLinksType =
(HyperLink)e.Item.FindControl("lnkHotLinkType");

lnkHotLinksType.Text = dataRowView["Type"].ToString();
lnkHotLinksType.NavigateUrl = "ChooseHotlinks.aspx?hotlinktypeid=" +
dataRowView["ID"].ToString();
}
}

private void grdLinks_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

ImageButton imgAddHotLink =
(ImageButton)e.Item.FindControl("imgAddHotLink");

imgAddHotLink.CommandName = "AddFAQ";
}
}

private void grdLinks_ItemCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
switch (e.CommandName)
{
case "AddFAQ":

break;

case "AddNews":

break;

case "AddEvent":

break;
}
BindLinksGrid(HotLinkTypeID);
}
}
}
 
Kostadin, I'm setting commandName = "AddFAQ" in code under the ItemDataBind
Event

Thanks,

Jon

Kostadin Kostov said:
I assume that you set CommandName="AddFAQ" as property of the DataGrid. You
have to set the CommandName as property of the control that causes the
command inside the datagrid - LinkButton, Button or whatever it is.

Hope that helps!
Regards,
Kostadin Kostov

Jon said:
Hello all, I've pasted in my code that doesn't seem to work. I can raise the
grdLinks_ItemCommand event, but for some reason e.CommandName is = "", event
though in gdrLink_ItemDataBound I'm setting it to be AddFAQ. WHy is that?

Thanks,
namespace HotLinks
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class ChooseHotlinks : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid grdLinks;
protected System.Web.UI.WebControls.DataGrid grdHotLinks;
protected System.Web.UI.WebControls.Repeater rptLinkTypes;

private int HotLinkTypeID;

private void Page_Load(object sender, System.EventArgs e)
{
HotLinkTypeID = Convert.ToInt32(Request.QueryString["hotlinktypeid"]);

if(!Page.IsPostBack)
{
BindLinkTypes();

if(HotLinkTypeID != 0)
{
BindLinksGrid(HotLinkTypeID);
}
}
}

private void BindLinkTypes()
{
rptLinkTypes.DataSource = new HotLinks().GetAllHotLinkTypes();
rptLinkTypes.DataBind();
}

private void BindLinksGrid(int LinkType)
{
switch (LinkType)
{
case 1:
grdLinks.DataSource = new HotLinks().GetAllFAQs();
BoundColumn faqID = new BoundColumn();
BoundColumn Question = new BoundColumn();

faqID.DataField = "faqID";
faqID.HeaderText = "ID";
Question.DataField = "faqQuestion";
Question.HeaderText = "Question";

grdLinks.Columns.AddAt(0, faqID);
grdLinks.Columns.AddAt(1, Question);
break;

case 2:
grdLinks.DataSource = new HotLinks().GetAllNews();
BoundColumn newsID = new BoundColumn();
BoundColumn Headline = new BoundColumn();

newsID.DataField = "newsID";
newsID.HeaderText = "ID";
Headline.DataField = "newsHeadline";
Headline.HeaderText = "Headline";

grdLinks.Columns.AddAt(0, newsID);
grdLinks.Columns.AddAt(1, Headline);
break;

case 3:
grdLinks.DataSource = new HotLinks().GetAllEvents();
BoundColumn eventID = new BoundColumn();
BoundColumn Name = new BoundColumn();

eventID.DataField = "eventID";
eventID.HeaderText = "ID";
Name.DataField = "eventName";
Name.HeaderText = "Name";

grdLinks.Columns.AddAt(0, eventID);
grdLinks.Columns.AddAt(1, Name);
break;
}
grdLinks.DataBind();
}

private void BindHotLinksGrid()
{

}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.rptLinkTypes.ItemDataBound += new
System.Web.UI.WebControls.RepeaterItemEventHandler(this.rptLinkTypes_ItemDataBound);
this.grdLinks.ItemCommand += new
System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdLinks_ItemCommand);
this.grdLinks.ItemDataBound += new
System.Web.UI.WebControls.DataGridItemEventHandler(this.grdLinks_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void rptLinkTypes_ItemDataBound(object sender,
System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

HyperLink lnkHotLinksType =
(HyperLink)e.Item.FindControl("lnkHotLinkType");

lnkHotLinksType.Text = dataRowView["Type"].ToString();
lnkHotLinksType.NavigateUrl = "ChooseHotlinks.aspx?hotlinktypeid=" +
dataRowView["ID"].ToString();
}
}

private void grdLinks_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

ImageButton imgAddHotLink =
(ImageButton)e.Item.FindControl("imgAddHotLink");

imgAddHotLink.CommandName = "AddFAQ";
}
}

private void grdLinks_ItemCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
switch (e.CommandName)
{
case "AddFAQ":

break;

case "AddNews":

break;

case "AddEvent":

break;
}
BindLinksGrid(HotLinkTypeID);
}
}
}
 
move the code from the data bind event to the data create event for the
datagrid and that should work

HTH

Ollie Riches

Jon said:
Kostadin, I'm setting commandName = "AddFAQ" in code under the ItemDataBind
Event

Thanks,

Jon

Kostadin Kostov said:
I assume that you set CommandName="AddFAQ" as property of the DataGrid. You
have to set the CommandName as property of the control that causes the
command inside the datagrid - LinkButton, Button or whatever it is.

Hope that helps!
Regards,
Kostadin Kostov

Jon said:
Hello all, I've pasted in my code that doesn't seem to work. I can raise the
grdLinks_ItemCommand event, but for some reason e.CommandName is = "", event
though in gdrLink_ItemDataBound I'm setting it to be AddFAQ. WHy is that?

Thanks,
namespace HotLinks
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class ChooseHotlinks : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid grdLinks;
protected System.Web.UI.WebControls.DataGrid grdHotLinks;
protected System.Web.UI.WebControls.Repeater rptLinkTypes;

private int HotLinkTypeID;

private void Page_Load(object sender, System.EventArgs e)
{
HotLinkTypeID = Convert.ToInt32(Request.QueryString["hotlinktypeid"]);

if(!Page.IsPostBack)
{
BindLinkTypes();

if(HotLinkTypeID != 0)
{
BindLinksGrid(HotLinkTypeID);
}
}
}

private void BindLinkTypes()
{
rptLinkTypes.DataSource = new HotLinks().GetAllHotLinkTypes();
rptLinkTypes.DataBind();
}

private void BindLinksGrid(int LinkType)
{
switch (LinkType)
{
case 1:
grdLinks.DataSource = new HotLinks().GetAllFAQs();
BoundColumn faqID = new BoundColumn();
BoundColumn Question = new BoundColumn();

faqID.DataField = "faqID";
faqID.HeaderText = "ID";
Question.DataField = "faqQuestion";
Question.HeaderText = "Question";

grdLinks.Columns.AddAt(0, faqID);
grdLinks.Columns.AddAt(1, Question);
break;

case 2:
grdLinks.DataSource = new HotLinks().GetAllNews();
BoundColumn newsID = new BoundColumn();
BoundColumn Headline = new BoundColumn();

newsID.DataField = "newsID";
newsID.HeaderText = "ID";
Headline.DataField = "newsHeadline";
Headline.HeaderText = "Headline";

grdLinks.Columns.AddAt(0, newsID);
grdLinks.Columns.AddAt(1, Headline);
break;

case 3:
grdLinks.DataSource = new HotLinks().GetAllEvents();
BoundColumn eventID = new BoundColumn();
BoundColumn Name = new BoundColumn();

eventID.DataField = "eventID";
eventID.HeaderText = "ID";
Name.DataField = "eventName";
Name.HeaderText = "Name";

grdLinks.Columns.AddAt(0, eventID);
grdLinks.Columns.AddAt(1, Name);
break;
}
grdLinks.DataBind();
}

private void BindHotLinksGrid()
{

}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.rptLinkTypes.ItemDataBound += new
System.Web.UI.WebControls.RepeaterItemEventHandler(this.rptLinkTypes_ItemDat
aBound); System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdLinks_ItemComm
and); System.Web.UI.WebControls.DataGridItemEventHandler(this.grdLinks_ItemDataBou
nd);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void rptLinkTypes_ItemDataBound(object sender,
System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

HyperLink lnkHotLinksType =
(HyperLink)e.Item.FindControl("lnkHotLinkType");

lnkHotLinksType.Text = dataRowView["Type"].ToString();
lnkHotLinksType.NavigateUrl = "ChooseHotlinks.aspx?hotlinktypeid=" +
dataRowView["ID"].ToString();
}
}

private void grdLinks_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

ImageButton imgAddHotLink =
(ImageButton)e.Item.FindControl("imgAddHotLink");

imgAddHotLink.CommandName = "AddFAQ";
}
}

private void grdLinks_ItemCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
switch (e.CommandName)
{
case "AddFAQ":

break;

case "AddNews":

break;

case "AddEvent":

break;
}
BindLinksGrid(HotLinkTypeID);
}
}
}
 
Hello Ollie,

There is no Data Create event for a datagrid, there's the ItemCreated event?

Thanks,

Ollie Riches said:
move the code from the data bind event to the data create event for the
datagrid and that should work

HTH

Ollie Riches

Jon said:
Kostadin, I'm setting commandName = "AddFAQ" in code under the ItemDataBind
Event

Thanks,

Jon

Kostadin Kostov said:
I assume that you set CommandName="AddFAQ" as property of the DataGrid. You
have to set the CommandName as property of the control that causes the
command inside the datagrid - LinkButton, Button or whatever it is.

Hope that helps!
Regards,
Kostadin Kostov

:

Hello all, I've pasted in my code that doesn't seem to work. I can raise the
grdLinks_ItemCommand event, but for some reason e.CommandName is = "", event
though in gdrLink_ItemDataBound I'm setting it to be AddFAQ. WHy is that?

Thanks,
namespace HotLinks
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class ChooseHotlinks : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid grdLinks;
protected System.Web.UI.WebControls.DataGrid grdHotLinks;
protected System.Web.UI.WebControls.Repeater rptLinkTypes;

private int HotLinkTypeID;

private void Page_Load(object sender, System.EventArgs e)
{
HotLinkTypeID = Convert.ToInt32(Request.QueryString["hotlinktypeid"]);

if(!Page.IsPostBack)
{
BindLinkTypes();

if(HotLinkTypeID != 0)
{
BindLinksGrid(HotLinkTypeID);
}
}
}

private void BindLinkTypes()
{
rptLinkTypes.DataSource = new HotLinks().GetAllHotLinkTypes();
rptLinkTypes.DataBind();
}

private void BindLinksGrid(int LinkType)
{
switch (LinkType)
{
case 1:
grdLinks.DataSource = new HotLinks().GetAllFAQs();
BoundColumn faqID = new BoundColumn();
BoundColumn Question = new BoundColumn();

faqID.DataField = "faqID";
faqID.HeaderText = "ID";
Question.DataField = "faqQuestion";
Question.HeaderText = "Question";

grdLinks.Columns.AddAt(0, faqID);
grdLinks.Columns.AddAt(1, Question);
break;

case 2:
grdLinks.DataSource = new HotLinks().GetAllNews();
BoundColumn newsID = new BoundColumn();
BoundColumn Headline = new BoundColumn();

newsID.DataField = "newsID";
newsID.HeaderText = "ID";
Headline.DataField = "newsHeadline";
Headline.HeaderText = "Headline";

grdLinks.Columns.AddAt(0, newsID);
grdLinks.Columns.AddAt(1, Headline);
break;

case 3:
grdLinks.DataSource = new HotLinks().GetAllEvents();
BoundColumn eventID = new BoundColumn();
BoundColumn Name = new BoundColumn();

eventID.DataField = "eventID";
eventID.HeaderText = "ID";
Name.DataField = "eventName";
Name.HeaderText = "Name";

grdLinks.Columns.AddAt(0, eventID);
grdLinks.Columns.AddAt(1, Name);
break;
}
grdLinks.DataBind();
}

private void BindHotLinksGrid()
{

}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.rptLinkTypes.ItemDataBound += new
System.Web.UI.WebControls.RepeaterItemEventHandler(this.rptLinkTypes_ItemDat
aBound);
this.grdLinks.ItemCommand += new
System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdLinks_ItemComm
and);
this.grdLinks.ItemDataBound += new
System.Web.UI.WebControls.DataGridItemEventHandler(this.grdLinks_ItemDataBou
nd);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void rptLinkTypes_ItemDataBound(object sender,
System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

HyperLink lnkHotLinksType =
(HyperLink)e.Item.FindControl("lnkHotLinkType");

lnkHotLinksType.Text = dataRowView["Type"].ToString();
lnkHotLinksType.NavigateUrl = "ChooseHotlinks.aspx?hotlinktypeid=" +
dataRowView["ID"].ToString();
}
}

private void grdLinks_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

ImageButton imgAddHotLink =
(ImageButton)e.Item.FindControl("imgAddHotLink");

imgAddHotLink.CommandName = "AddFAQ";
}
}

private void grdLinks_ItemCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
switch (e.CommandName)
{
case "AddFAQ":

break;

case "AddNews":

break;

case "AddEvent":

break;
}
BindLinksGrid(HotLinkTypeID);
}
}
}
 
sorry I meant ItemCreated

Ollie

Jon said:
Hello Ollie,

There is no Data Create event for a datagrid, there's the ItemCreated event?

Thanks,

Ollie Riches said:
move the code from the data bind event to the data create event for the
datagrid and that should work

HTH

Ollie Riches

Jon said:
Kostadin, I'm setting commandName = "AddFAQ" in code under the ItemDataBind
Event

Thanks,

Jon

:

I assume that you set CommandName="AddFAQ" as property of the
DataGrid.
You
have to set the CommandName as property of the control that causes the
command inside the datagrid - LinkButton, Button or whatever it is.

Hope that helps!
Regards,
Kostadin Kostov

:

Hello all, I've pasted in my code that doesn't seem to work. I can raise the
grdLinks_ItemCommand event, but for some reason e.CommandName is =
"",
event
though in gdrLink_ItemDataBound I'm setting it to be AddFAQ. WHy
is
that?
Thanks,
namespace HotLinks
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class ChooseHotlinks : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid grdLinks;
protected System.Web.UI.WebControls.DataGrid grdHotLinks;
protected System.Web.UI.WebControls.Repeater rptLinkTypes;

private int HotLinkTypeID;

private void Page_Load(object sender, System.EventArgs e)
{
HotLinkTypeID = Convert.ToInt32(Request.QueryString["hotlinktypeid"]);

if(!Page.IsPostBack)
{
BindLinkTypes();

if(HotLinkTypeID != 0)
{
BindLinksGrid(HotLinkTypeID);
}
}
}

private void BindLinkTypes()
{
rptLinkTypes.DataSource = new HotLinks().GetAllHotLinkTypes();
rptLinkTypes.DataBind();
}

private void BindLinksGrid(int LinkType)
{
switch (LinkType)
{
case 1:
grdLinks.DataSource = new HotLinks().GetAllFAQs();
BoundColumn faqID = new BoundColumn();
BoundColumn Question = new BoundColumn();

faqID.DataField = "faqID";
faqID.HeaderText = "ID";
Question.DataField = "faqQuestion";
Question.HeaderText = "Question";

grdLinks.Columns.AddAt(0, faqID);
grdLinks.Columns.AddAt(1, Question);
break;

case 2:
grdLinks.DataSource = new HotLinks().GetAllNews();
BoundColumn newsID = new BoundColumn();
BoundColumn Headline = new BoundColumn();

newsID.DataField = "newsID";
newsID.HeaderText = "ID";
Headline.DataField = "newsHeadline";
Headline.HeaderText = "Headline";

grdLinks.Columns.AddAt(0, newsID);
grdLinks.Columns.AddAt(1, Headline);
break;

case 3:
grdLinks.DataSource = new HotLinks().GetAllEvents();
BoundColumn eventID = new BoundColumn();
BoundColumn Name = new BoundColumn();

eventID.DataField = "eventID";
eventID.HeaderText = "ID";
Name.DataField = "eventName";
Name.HeaderText = "Name";

grdLinks.Columns.AddAt(0, eventID);
grdLinks.Columns.AddAt(1, Name);
break;
}
grdLinks.DataBind();
}

private void BindHotLinksGrid()
{

}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.rptLinkTypes.ItemDataBound += new
System.Web.UI.WebControls.RepeaterItemEventHandler(this.rptLinkTypes_ItemDat
aBound);
this.grdLinks.ItemCommand += new
System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdLinks_ItemComm
and);
this.grdLinks.ItemDataBound += new
System.Web.UI.WebControls.DataGridItemEventHandler(this.grdLinks_ItemDataBou
nd);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void rptLinkTypes_ItemDataBound(object sender,
System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

HyperLink lnkHotLinksType =
(HyperLink)e.Item.FindControl("lnkHotLinkType");

lnkHotLinksType.Text = dataRowView["Type"].ToString();
lnkHotLinksType.NavigateUrl = "ChooseHotlinks.aspx?hotlinktypeid=" +
dataRowView["ID"].ToString();
}
}

private void grdLinks_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

ImageButton imgAddHotLink =
(ImageButton)e.Item.FindControl("imgAddHotLink");

imgAddHotLink.CommandName = "AddFAQ";
}
}

private void grdLinks_ItemCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
switch (e.CommandName)
{
case "AddFAQ":

break;

case "AddNews":

break;

case "AddEvent":

break;
}
BindLinksGrid(HotLinkTypeID);
}
}
}
 
Hi Ollie, unfortunately that didn't work either :(. In my despiration I've
re-written it!

Thanks for your efforts though,

Jon

Ollie Riches said:
sorry I meant ItemCreated

Ollie

Jon said:
Hello Ollie,

There is no Data Create event for a datagrid, there's the ItemCreated event?

Thanks,

Ollie Riches said:
move the code from the data bind event to the data create event for the
datagrid and that should work

HTH

Ollie Riches

Kostadin, I'm setting commandName = "AddFAQ" in code under the
ItemDataBind
Event

Thanks,

Jon

:

I assume that you set CommandName="AddFAQ" as property of the DataGrid.
You
have to set the CommandName as property of the control that causes the
command inside the datagrid - LinkButton, Button or whatever it is.

Hope that helps!
Regards,
Kostadin Kostov

:

Hello all, I've pasted in my code that doesn't seem to work. I can
raise the
grdLinks_ItemCommand event, but for some reason e.CommandName is = "",
event
though in gdrLink_ItemDataBound I'm setting it to be AddFAQ. WHy is
that?

Thanks,
namespace HotLinks
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class ChooseHotlinks : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid grdLinks;
protected System.Web.UI.WebControls.DataGrid grdHotLinks;
protected System.Web.UI.WebControls.Repeater rptLinkTypes;

private int HotLinkTypeID;

private void Page_Load(object sender, System.EventArgs e)
{
HotLinkTypeID = Convert.ToInt32(Request.QueryString["hotlinktypeid"]);

if(!Page.IsPostBack)
{
BindLinkTypes();

if(HotLinkTypeID != 0)
{
BindLinksGrid(HotLinkTypeID);
}
}
}

private void BindLinkTypes()
{
rptLinkTypes.DataSource = new HotLinks().GetAllHotLinkTypes();
rptLinkTypes.DataBind();
}

private void BindLinksGrid(int LinkType)
{
switch (LinkType)
{
case 1:
grdLinks.DataSource = new HotLinks().GetAllFAQs();
BoundColumn faqID = new BoundColumn();
BoundColumn Question = new BoundColumn();

faqID.DataField = "faqID";
faqID.HeaderText = "ID";
Question.DataField = "faqQuestion";
Question.HeaderText = "Question";

grdLinks.Columns.AddAt(0, faqID);
grdLinks.Columns.AddAt(1, Question);
break;

case 2:
grdLinks.DataSource = new HotLinks().GetAllNews();
BoundColumn newsID = new BoundColumn();
BoundColumn Headline = new BoundColumn();

newsID.DataField = "newsID";
newsID.HeaderText = "ID";
Headline.DataField = "newsHeadline";
Headline.HeaderText = "Headline";

grdLinks.Columns.AddAt(0, newsID);
grdLinks.Columns.AddAt(1, Headline);
break;

case 3:
grdLinks.DataSource = new HotLinks().GetAllEvents();
BoundColumn eventID = new BoundColumn();
BoundColumn Name = new BoundColumn();

eventID.DataField = "eventID";
eventID.HeaderText = "ID";
Name.DataField = "eventName";
Name.HeaderText = "Name";

grdLinks.Columns.AddAt(0, eventID);
grdLinks.Columns.AddAt(1, Name);
break;
}
grdLinks.DataBind();
}

private void BindHotLinksGrid()
{

}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.rptLinkTypes.ItemDataBound += new

System.Web.UI.WebControls.RepeaterItemEventHandler(this.rptLinkTypes_ItemDat
aBound);
this.grdLinks.ItemCommand += new

System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdLinks_ItemComm
and);
this.grdLinks.ItemDataBound += new

System.Web.UI.WebControls.DataGridItemEventHandler(this.grdLinks_ItemDataBou
nd);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void rptLinkTypes_ItemDataBound(object sender,
System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

HyperLink lnkHotLinksType =
(HyperLink)e.Item.FindControl("lnkHotLinkType");

lnkHotLinksType.Text = dataRowView["Type"].ToString();
lnkHotLinksType.NavigateUrl = "ChooseHotlinks.aspx?hotlinktypeid=" +
dataRowView["ID"].ToString();
}
}

private void grdLinks_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
DataRowView dataRowView = (DataRowView)e.Item.DataItem;

ImageButton imgAddHotLink =
(ImageButton)e.Item.FindControl("imgAddHotLink");

imgAddHotLink.CommandName = "AddFAQ";
}
}

private void grdLinks_ItemCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
switch (e.CommandName)
{
case "AddFAQ":

break;

case "AddNews":

break;

case "AddEvent":

break;
}
BindLinksGrid(HotLinkTypeID);
}
}
}
 
Back
Top