【问题标题】:Getting all selected values from Grid Row从 Grid Row 获取所有选定的值
【发布时间】:2013-08-23 12:44:02
【问题描述】:

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

现在我需要根据选中的复选框将选定的值放入列表中。我的意思是,如果我选中第一个复选框,则 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;
                        }
                    }
                }
            }

        }

【问题讨论】:

  • 不要在每个问题的底部添加您的姓名,而只需编辑您的用户个人资料以添加您的姓名,这样您的姓名将始终存在,而问题文本仅集中在问题上跨度>

标签: asp.net listview gridview drop-down-menu checkbox


【解决方案1】:

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

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

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

从这里你可以继续类似

var selecteds = [];

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

希望我没听错,如果没有,请在这里回复我

编辑:

回答你的 cmets,我希望你说得对,你希望每个列表项都包含 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(function(index, element){

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 ));

});

【讨论】:

  • 目前我放置了复选框和 2 个单选按钮和单选按钮列表的属性。我尝试并成功地将单个值(仅复选框名称)保存到列表中。但是我不知道如何将复选框名称(包括其下拉列表和单选按钮列表值)保存到列表中。
  • 我需要 List[0] 应该包含所有值,如 gridview 中一行的复选框名称、ddl 值和单选按钮列表值。每行控制值应保存在列表 LIST[i] 的每个索引中
  • 如果你没有注意到我为你添加和“编辑”:)
猜你喜欢
  • 2019-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-07
  • 2016-02-29
  • 2015-07-16
  • 2015-02-19
  • 2011-08-17
相关资源
最近更新 更多