Devexpress 如何在主详图网格视图中获取选定的详图网格行?
我在获取详图网格的选定行值时遇到问题。我有一个弹出控件中的主细节网格,它工作得很好。我还启用了启用选择复选框,但当我尝试在按钮的ClientSideEvents上运行GetSelectedFieldValues时,它总是返回“0”。我做错了什么,我找不到它 以下是详细信息网格: CssFilePath=“~/App\u Themes/Aqua/{0}/styles.css” ClientInstanceName=“gvC\U参数tempd”> VisibleIndex=“3”> VisibleIndex=“4”> VisibleIndex=“5”> VisibleIndex=“6”>Devexpress 如何在主详图网格视图中获取选定的详图网格行?,devexpress,master-detail,aspxgridview,selectedvalue,Devexpress,Master Detail,Aspxgridview,Selectedvalue,我在获取详图网格的选定行值时遇到问题。我有一个弹出控件中的主细节网格,它工作得很好。我还启用了启用选择复选框,但当我尝试在按钮的ClientSideEvents上运行GetSelectedFieldValues时,它总是返回“0”。我做错了什么,我找不到它 以下是详细信息网格: CssFilePath=“~/App\u Themes/Aqua/{0}/styles.css” ClientInstanceName=“gvC\U参数tempd”> VisibleIndex=“3”> Visibl
这是按钮:
这是jsscript:
函数ShowCellValue(值){
ConfPrmMTempCollection _ConfPrmMTempCollection = new ConfPrmMTempCollection();
masterKey = e.Parameters;
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);
gv_Answers.DataBind();
man.Clear();
}
}
ASPxGridView detailGrid = sender as ASPxGridView;
masterKey = detailGrid.GetMasterRowKeyValue().ToString();
man.Add(new SqlOperatorEquality("MAND_CONF_PRM_D_TEMP.PARAMETER_M_TEMP_ID", Convert.ToInt32(masterKey)));
detailGrid.DataSource = gc.LoadCollectionFromCollType(typeof(ConfPrmDTempCollection),man);
}
var value=condition.GetText();
警报(values.length);//在这里它返回“0”
如果(值!=“”)
{
var newValue=''+value+values+'='';
condition.SetText(newValue);
}
其他的
{
对于(变量i=0;i
我不知道我做错了什么
感谢您的帮助我认为按钮位于同一个DetailRowTemplate容器中的假设正确吗?无论如何,必须访问detail GridView对象的适当实例。为此,请将网格的ClientInstanceName属性设置为动态值。这应该允许您访问适当的网格实例并获取选定的行值。示例代码位于:
我认为按钮位于同一个DetailRowTemplate容器中,对吗?无论如何,必须访问detail GridView对象的适当实例。为此,请将网格的ClientInstanceName属性设置为动态值。这应该允许您访问适当的网格实例并获取选定的行值。示例代码位于:
我正在运行时设置数据源,但我不调用DataBind方法,因为它使细节网格的BeforePerformDataSelect执行多个操作 此代码设置主网格数据源并将其绑定: 保护空隙 gv_Answers_CustomCallback(对象 发件人, ASPxGridViewCustomCallbackEventArgs(e) {
ConfPrmMTempCollection _ConfPrmMTempCollection = new ConfPrmMTempCollection();
masterKey = e.Parameters;
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);
gv_Answers.DataBind();
man.Clear();
}
}
ASPxGridView detailGrid = sender as ASPxGridView;
masterKey = detailGrid.GetMasterRowKeyValue().ToString();
man.Add(new SqlOperatorEquality("MAND_CONF_PRM_D_TEMP.PARAMETER_M_TEMP_ID", Convert.ToInt32(masterKey)));
detailGrid.DataSource = gc.LoadCollectionFromCollType(typeof(ConfPrmDTempCollection),man);
}
此代码用于设置详图网格的数据源:
保护空隙
gv_参数tempd_在执行数据选择之前(对象
发送方,事件参数(e)
{
ConfPrmMTempCollection _ConfPrmMTempCollection = new ConfPrmMTempCollection();
masterKey = e.Parameters;
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);
gv_Answers.DataBind();
man.Clear();
}
}
ASPxGridView detailGrid = sender as ASPxGridView;
masterKey = detailGrid.GetMasterRowKeyValue().ToString();
man.Add(new SqlOperatorEquality("MAND_CONF_PRM_D_TEMP.PARAMETER_M_TEMP_ID", Convert.ToInt32(masterKey)));
detailGrid.DataSource = gc.LoadCollectionFromCollType(typeof(ConfPrmDTempCollection),man);
}
我在运行时设置数据源,但我不调用DataBind方法,因为它使细节网格的BeforePerformDataSelect执行多个操作 此代码设置主网格数据源并将其绑定: 保护空隙 gv_Answers_CustomCallback(对象 发件人, ASPxGridViewCustomCallbackEventArgs(e) {
ConfPrmMTempCollection _ConfPrmMTempCollection = new ConfPrmMTempCollection();
masterKey = e.Parameters;
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);
gv_Answers.DataBind();
man.Clear();
}
}
ASPxGridView detailGrid = sender as ASPxGridView;
masterKey = detailGrid.GetMasterRowKeyValue().ToString();
man.Add(new SqlOperatorEquality("MAND_CONF_PRM_D_TEMP.PARAMETER_M_TEMP_ID", Convert.ToInt32(masterKey)));
detailGrid.DataSource = gc.LoadCollectionFromCollType(typeof(ConfPrmDTempCollection),man);
}
此代码用于设置详图网格的数据源:
保护空隙
gv_参数tempd_在执行数据选择之前(对象
发送方,事件参数(e)
{
ConfPrmMTempCollection _ConfPrmMTempCollection = new ConfPrmMTempCollection();
masterKey = e.Parameters;
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);
gv_Answers.DataBind();
man.Clear();
}
}
ASPxGridView detailGrid = sender as ASPxGridView;
masterKey = detailGrid.GetMasterRowKeyValue().ToString();
man.Add(new SqlOperatorEquality("MAND_CONF_PRM_D_TEMP.PARAMETER_M_TEMP_ID", Convert.ToInt32(masterKey)));
detailGrid.DataSource = gc.LoadCollectionFromCollType(typeof(ConfPrmDTempCollection),man);
}
我看到您在CustomCallback事件处理程序中设置了主网格的数据源。请尝试在会话变量中缓存masterKey值,并不仅在CustomCallback事件处理程序中,而且在Page_Init方法中设置网格的数据源:
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();
}
这有帮助吗?我看到您在CustomCallback事件处理程序中设置了主网格的数据源。请尝试在会话变量中缓存masterKey值,并不仅在CustomCallback事件处理程序中设置网格的数据源,而且在Page_Init方法中设置网格的数据源:
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();
}
这有帮助吗?我根据您的描述创建了一个示例项目,效果很好。可以从以下网站下载:
我根据您的描述创建了一个示例项目,效果很好。可从以下网站下载:
按钮不在DetailRowTemplate中,它在网格之外。如果是这样,可能会有许多详细网格。您如何决定应该获取哪些网格值?只有一个详细网格,而按钮在所有网格之外,它在html表中。Spesific ClientInstanceName不够?嗯,我想我不太理解您。A您是单独使用两个网格?还是有详细网格,位于主网格的DetailRowTemplate容器中,如DevXPress演示中所示?如果是后一种情况,此时详细网格的数量等于可见扩展主网格的数量。这就是为什么我建议您使用动态客户端安装的方法不,我不单独使用它们,细节网格在DetailRowTemplate中,但我想知道的是,按钮在DetailRowTemplate中是否重要?因为如果它在DetailRowTemplate“Container.VisibleIndex”的外部不起作用。在我的例子中,也只有一个主网格和详细网格。按钮不在DetailRowTemplate中,它在网格之外。如果是这样,可以有许多详细网格。如何确定应该获取哪些网格值?只有一个详细网格,而按钮在所有网格之外,它在html表中。Spesific ClientInstanceName还不够?嗯,我想我不太了解你。你是单独使用两个网格?还是有一个详细网格,驻留在主网格的DetailRowTemplate容器中,如DevExpress演示所示?如果是后一种情况,此时详细网格的数量等于可见的扩展主网格的数量。这就是为什么我建议您使用带有动态ClientInstanceName的方法。不,我不单独使用它们,细节网格在DetailRowTemplate中,但我想知道的是,按钮在DetailRowTemplate中是否重要?因为如果它在DetailRowTemplate“Container.VisibleIndex”之外,则不起作用。同样在我的c中
FieldName="PrmStokSelector"
</dxwgv:GridViewDataTextColumn>
</Columns>
<ClientSideEvents Click="function(s,e)
{
pcc_Question.Hide();
gvC_ParameterTempD.GetSelectedFieldValues('PrmDetailName;PrmDetailNameG;PrmDetailNameS',ShowCellValue);
}"
/>
</dxe:ASPxButton>
var value = condition.GetText();
alert(values.length); // here it returns "0"
if(value != "")
{
var newValue = ' ' + value + values + ' = ';
condition.SetText(newValue);
}
else
{
for(var i = 0; i < values.length; i ++) {
value += values[i];
}
condition.SetText(value);
}
}
ConfPrmMTempCollection _ConfPrmMTempCollection = new ConfPrmMTempCollection();
masterKey = e.Parameters;
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);
gv_Answers.DataBind();
man.Clear();
}
}
ASPxGridView detailGrid = sender as ASPxGridView;
masterKey = detailGrid.GetMasterRowKeyValue().ToString();
man.Add(new SqlOperatorEquality("MAND_CONF_PRM_D_TEMP.PARAMETER_M_TEMP_ID", Convert.ToInt32(masterKey)));
detailGrid.DataSource = gc.LoadCollectionFromCollType(typeof(ConfPrmDTempCollection),man);
}
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();
}