使第一列和最后一列不可点击

时间:2010-10-19 18:30:05

标签: c# javascript asp.net

我在ASP.net网络应用程序中生成了一个表。该表有4列。目前,可以单击每行的每个单元格以获取更详细的信息。但是,我不希望每行中的第一个和最后一个单元格是可单击的。如何才能使它只能点击第一个第二个和第三个单元?

下面是一些代码(来自.cs文件):

if(e.Row.RowType == DataControlRowType.DataRow)
         {
            e.Row.BackColor = TRADER_BACKCOLOR;
            e.Row.Cells[0].Font.Bold = true;
            e.Row.Attributes.Add("onmouseover", "style.backgroundColor = 'Silver'");
            e.Row.Attributes.Add("onmouseout", "style.backgroundColor = '" + TRADER_HEX + "'");
            e.Row.Attributes.Add("onclick", "RowClick(this, '" + e.Row.Cells[0].Text + "');");

来自.aspx文件:

function RowClick(caller, id)
      {
         if(document.getElementById(id).style.display == "block")
         {
                if(last != "" && parent == id)
                {
                    HideDetailed();
                }
            document.getElementById(id).style.display = "none";
         }
         else
         {
            document.getElementById(id).style.display = "block";
         }
      }

2 个答案:

答案 0 :(得分:1)

你必须事先知道你绑定桌子的数量,以便工作。

// minus one since the RowIndex is 0-based
int total = whateverYouAreBindingTo.Count - 1;

然后在您的活动中或您添加OnClick事件的任何地方...

if (e.Row.RowIndex > 0 && e.Row.RowIndex < total)
   e.Row.Attributes.Add("onclick", "RowClick(this, '" + e.Row.Cells[0].Text + "');");

答案 1 :(得分:0)

我不会添加您不想点击的行的属性,例如:

if(e.Row.RowType == DataControlRowType.DataRow)
{

    e.Row.BackColor = TRADER_BACKCOLOR;
    e.Row.Cells[0].Font.Bold = true;
    e.Row.Attributes.Add("onmouseover", "style.backgroundColor = 'Silver'");
    e.Row.Attributes.Add("onmouseout", "style.backgroundColor = '" + TRADER_HEX + "'");
   if (e.Row.RowIndex != 0 && e.Row.RowIndex != yourGridView.Rows.Count - 1)
   {
     e.Row.Attributes.Add("onclick", "RowClick(this, '" + e.Row.Cells[0].Text + "');");
   }