0

我有一个gridview(有10行)。每行仅包含一列,其中有 1 个复选框、2 个下拉列表、1 个单选按钮列表。

现在我需要根据选中的复选框将选定的值放入 List 中。我的意思是,如果我选中第一个复选框,则 IList 中的第一个值应该具有该复选框的名称及其选择的下拉列表和单选按钮列表的值。

如何实现?谁可以帮我这个事?

/* Properties to get selected values */
public string SelectedChekbox
    {
        get { return _selectedChekbox; }
        set { _selectedChekbox = value; }
    }

    public string Ddl1Value
    {
        get { return _ddl1Value; }
        set { _ddl1Value = value; }
    }

    public string Ddl2Value
    {
        get { return _ddl2Value; }
        set { _ddl2Value = value; }
    }


/* This is the property in which I need values*/
public string SelectedGridValues
    {
        get { return _selectedGridValues; }
        set { _selectedGridValues = value; }
    }

/* To get the selected values of grid into list*/
/*** This was incomplete code. Need help to improve this ***/
private IList<MyList> LoadList()
    {

      foreach (DataListItem dlItem in dlDataList.Items)
      {
         GridView grid = (GridView)dlItem.FindControl("gvGridList");
         if (grid != null)
         {
           foreach (GridViewRow gridRow in grid.Rows)
           {
             CheckBox chk = gridRow.FindControl("chkSelect") as CheckBox;
             RadioButton rdo = gridRow.FindControl("rdoSelect") as RadioButton;
             DropDownList ddl1Value = gridRow.FindControl("ddl1") as DropDownList;
             DropDownList ddl1Value = gridRow.FindControl("ddl2") as DropDownList;

               if (chk.Checked && chk.Text == Name)
               {
                            _selectedGraph = chk.Text;
                            _ddl1Value = ddl1.SelectedValue;
                            _ddl1Value = ddl2.SelectedValue;
                        }
                    }
                }
            }

        }
4

1 回答 1

0

gridview 被渲染到一个 html 表中,所以尝试使用类似 firebug 的东西检查确切的选择器,但它应该类似于

var myrows = $(".myTableClass tr").has("input[type=checkbox]:checked");

那应该只返回选中复选框的 html 表格行。

从这里你可以继续像

变种选择 = [];

myrows.find("select option:selected").each(function(){ selecteds.push($(this).text()); });

希望我猜对了,如果没有,请在这里回复我

编辑:

回答你的评论,我希望我能理解你,你希望每个列表项都包含 cbxName、ddlVal 和 radioVal,这样你就可以像这样创建一个“类”

function myType(cbxName, ddlVal , radioVal ){
    this.cbxName= cbxName;
    this.ddlVal = ddlVal ;
    this.radioVal = radioVal ;
};

var x = new myType(2, 3, 4);

然后你像这样迭代行:

myrows.each(函数(索引,元素){

var r = $(this);
var cbxName = r.find("input[type=checkbox]").attr("name");
//or whatever the name is
var ddlVal = r.find("select").text();
//i think that will get u the selected text, if not do it like above
var radioVal = r.find("radio selector").attr("ur-att");
selecteds.push(new myType(cbxName , ddlVal , radioVal ));

});

于 2013-08-21T09:04:03.290 回答