我在获取细节网格的选定行值时遇到问题。我有一个弹出控件中的主-细节网格,它工作得很好。我还启用了enable选项,使其具有复选框,但当我尝试在按钮的ClientSideEvents上运行GetSelectedFieldValues时,它总是返回"0“。我做错了什么,我找不到它?
以下是详细信息网格:
AutoGenerateColumns="False" CssFilePath="~/App_Themes/Aqua/{0}/styles.css“
“Aqua”OnBeforePerformDataSelect="gv_ParameterTempD_BeforePerformDataSelect“CssPostfix=
ClientInstanceName="gvC_ParameterTempD">
<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(值);}}
我不知道我做错了什么,
谢谢你的帮助
发布于 2010-07-07 21:36:15
我的假设是按钮驻留在同一个DetailRowTemplate容器中,对吗?无论如何,有必要访问detail GridView对象的正确实例。为此,请将网格的ClientInstanceName属性设置为动态值。这应该允许您访问适当的网格实例并获取选定的行值。示例代码可在以下位置获得:
http://www.devexpress.com/Support/Center/ViewIssue.aspx?issueid=Q90007
发布于 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
发布于 2010-07-09 02:06:33
我看到您在CustomCallback事件处理程序中设置了主网格的DataSource。尝试在会话变量中缓存masterKey值,并不仅在CustomCallback事件处理程序中而且在Page_Init方法中设置网格的DataSource:
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();
}
这有帮助吗?
https://stackoverflow.com/questions/3194839
复制相似问题