首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Master-Detail GridView中获取选中的明细网格行?

如何在Master-Detail GridView中获取选中的明细网格行?
EN

Stack Overflow用户
提问于 2010-07-07 20:59:06
回答 4查看 17.6K关注 0票数 2

我在获取细节网格的选定行值时遇到问题。我有一个弹出控件中的主-细节网格,它工作得很好。我还启用了enable选项,使其具有复选框,但当我尝试在按钮的ClientSideEvents上运行GetSelectedFieldValues时,它总是返回"0“。我做错了什么,我找不到它?

以下是详细信息网格:

AutoGenerateColumns="False" CssFilePath="~/App_Themes/Aqua/{0}/styles.css“

“Aqua”OnBeforePerformDataSelect="gv_ParameterTempD_BeforePerformDataSelect“CssPostfix=

ClientInstanceName="gvC_ParameterTempD">

代码语言:javascript
复制
                             <dxwgv:GridViewCommandColumn

ShowSelectCheckbox="True“VisibleIndex="0">

Caption="Detay Kodu“FieldName="PrmDetailCode”

VisibleIndex="0">

Caption="Seçim Ad PrmDetailName“FieldName=”ı“

VisibleIndex="2">

Caption="Seçim Adı(Grup)“

FieldName="PrmDetailNameG“

VisibleIndex="3">

Caption="Seçim Adı(斯托克)“

FieldName="PrmDetailNameS“

VisibleIndex="4">

Caption="Grup Seçimi Yapan“

FieldName="PrmGroupSelector“

VisibleIndex="5">

Caption=“斯托克·塞西米·亚潘”

FieldName="PrmStokSelector“

VisibleIndex="6">

这就是按钮:

<ClientSideEvents Click="function(s,e) { pcc\_Question.Hide(); gvC\_ParameterTempD.GetSelectedFieldValues('PrmDetailName;PrmDetailNameG;PrmDetailNameS',ShowCellValue); }" /> </dxe:ASPxButton>

这是jsscript:

函数ShowCellValue(值){

var value = condition.GetText();alert(values.length);//这里返回"0“if(value != "") { var newValue =‘’+ value + values +‘= ';condition.SetText(newValue);} else { for(var i= 0;i< values.length;I ++) { value += valuesi;}condition.SetText(值);}}

我不知道我做错了什么,

谢谢你的帮助

EN

回答 4

Stack Overflow用户

发布于 2010-07-07 21:36:15

我的假设是按钮驻留在同一个DetailRowTemplate容器中,对吗?无论如何,有必要访问detail GridView对象的正确实例。为此,请将网格的ClientInstanceName属性设置为动态值。这应该允许您访问适当的网格实例并获取选定的行值。示例代码可在以下位置获得:

http://www.devexpress.com/Support/Center/ViewIssue.aspx?issueid=Q90007

票数 0
EN

Stack Overflow用户

发布于 2010-07-08 19:15:09

我在运行时设置了DataSource,但没有调用DataBind方法,因为它会使细节网格的BeforePerformDataSelect执行多个操作。

此代码设置主网格数据源并绑定它:

protected void gv_Answers_CustomCallback(对象发送者,ASPxGridViewCustomCallbackEventArgs e) {

gc.LoadCollectionFromCollType(typeof(ConfPrmMTempCollection),_ConfPrmMTempCollection = ConfPrmMTempCollection _ConfPrmMTempCollection();masterKey = e.Parameters;if (masterKey != "") { man.Add(new ConfPrmMTempCollection masterKey( gv_Answers.DataSource ));gv_Answers.DataBind();man.Clear();}}

此代码用于设置明细网格的数据源:

保护的无效gv_ParameterTempD_BeforePerformDataSelect(object发件人,EventArgs e) {

gc.LoadCollectionFromCollType(typeof(ConfPrmDTempCollection),detailGrid =发送者as ASPxGridView;masterKey = detailGrid.GetMasterRowKeyValue().ToString();man.Add( ASPxGridView masterKey( detailGrid.DataSource ));detailGrid.DataSource=gc.LoadCollectionFromCollType(typeof(ConfPrmDTempCollection),Convert.ToInt32);}detailGrid.DataSource

票数 0
EN

Stack Overflow用户

发布于 2010-07-09 02:06:33

我看到您在CustomCallback事件处理程序中设置了主网格的DataSource。尝试在会话变量中缓存masterKey值,并不仅在CustomCallback事件处理程序中而且在Page_Init方法中设置网格的DataSource:

代码语言:javascript
复制
protected void Page_Init(object sender, EventArgs e) {
    if(Session["masterKey"] == null)
      return;
    ConfPrmMTempCollection _ConfPrmMTempCollection = new ConfPrmMTempCollection();

            masterKey = Session["masterKey"].ToString();

            if (masterKey != "")
            {
                man.Add(new SqlOperatorEquality("MAND_CONF_PRM_M_TEMP.PARAMETER_M_TEMP_ID", Convert.ToInt32(masterKey)));
                gv_Answers.DataSource = gc.LoadCollectionFromCollType(typeof(ConfPrmMTempCollection),man);
                man.Clear();
            }

    }


    protected void Page_Load(object sender, EventArgs e) {
                gv_Answers.DataBind();
    }

这有帮助吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3194839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档