我有一个要求,当选中复选框时,必须使文本字段可编辑或呈现,我该如何实现?
我知道这是如何保存记录的
<apex:commandButton action="{!save}" value="Save"/>
Run Code Online (Sandbox Code Playgroud)
我想要一个按钮不保存当前记录(即取消)并导航到保存记录列表(即该对象类型的对象列表).
像这样......
<apex:commandButton action="{!cancel}" value="Cancel"/>
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种技术,以保护用户免受CSRF的方式从添加到Opportunity对象的自定义按钮执行Apex代码.
当前使用的方法来自问题 - 自定义按钮或链接到带有自定义控制器的Visualforce页面.实质上:
这种方法的问题是第二个自定义Visualforce页面是通过HTTP GET检索的,从查询字符串中提取参数,并执行更新/插入DML操作而没有CSRF保护.这是由Force.com安全源代码扫描程序提取的.
我应该补充一点,这个顶点代码被部署为托管和非托管包,因此使用PageReference重定向到目标Visualforce页面的额外工作.这可确保在需要时添加名称空间前缀.
如何避免CSRF问题?
我不想在第二个visualforce页面上添加一个表单,只需按一下按钮即可启动该进程(从而在回发中获取ViewStateCSRF保护).从用户的角度来看,他们已经按下按钮来执行操作.
我之前在开发人员论坛上问过这个问题并没有提出解决方案 - 跨站点请求伪造(CSRF/XSRF)安全自定义按钮操作
也许我应该尝试将代码从控制器中移出第二个可视化力页并使用扩展到支架控制器?
我可以切换到Apex Web服务的Javascript回调(如从自定义按钮调用apex方法和如何从自定义按钮调用APEX方法中的建议),但它看起来有点乱,我不确定我是不是只是打开Web服务的另一系列安全问题.
我有一个数据表,它遍历自定义对象并生成复选框.在第二页上,我想确定选择了哪些复选框.
在VisualForce页面中:
Age <apex:inputText value="{!age}" id="age" />
<apex:dataTable value="{!Areas}" var="a">
<apex:column >
<apex:inputCheckbox value="{!a.name}" /> <apex:outputText value="{!a.name}" />
</apex:column>
</apex:dataTable>
Run Code Online (Sandbox Code Playgroud)
在控制器中:
public String age {get; set; }
public List<Area_Of_Interest__c> getAreas() {
areas = [select id, name from Area_Of_Interest__c];
return areas;
}
Run Code Online (Sandbox Code Playgroud)
在我的第二页上,我可以通过使用检索用户在文本框"age"中放置的值{!age}
.如何检索已选中的复选框?
谢谢.
我被要求为Salesforce中的当前应用程序演示一些ExtJS UI增强功能.这只是一个概念证明,ExtJS将作为我们大多数VisualForce页面使用的默认UI的良好UI替代品.
一切都很好,也就是说,除了CSS的几个零碎之外."... visual.force.com/sCSS/21.0/sprites/13013.../Theme3/default"里面有很多样式,它们正在搞乱ExtJS元素.特别是commmon.css和extended.css.这是一个例子:
Extended.css
body .x-date-middle, .x-date-left, .x-date-right {
background: none repeat scroll 0 0 transparent;
}
Run Code Online (Sandbox Code Playgroud)
有没有一种优雅的方式,或者ExtJS是不是在Salesforce内部发挥不好?
例如:有没有办法告诉我的VisualForce页面忽略commmon.css和extended.css?
我有一个Visualforce页面使用自定义控制器,用于编辑机会下的多个记录.
我想创建一个从Opportunities到此Visualforce页面的自定义按钮或链接.
目前链接如下:
/apex/ExamplePage?oppId={!Opportunity.Id}
Run Code Online (Sandbox Code Playgroud)
这在开发沙箱中工作正常,但是当它作为托管包的一部分部署时,链接会断开,因为页面引用没有名称空间前缀.
我在Force.com讨论板上发现了托管包重定向问题,暗示应该可以使用$ Page来引用URL中的Visualforce页面.例如
{!URLFOR($Page.MyExamplePage,'',[objectId = campaign.id])}
Run Code Online (Sandbox Code Playgroud)
但这样做只会给我语法错误:
错误:字段$ Page.MyExamplePage不存在.检查拼写.
该帖子的另一部分建议使用Apex类和Execute Javascript来解决它.但在我看来,这只是将名称空间问题转移到了Javascript中.
如何安全地引用Visualforce页面以在托管包内外工作?
我使用Configuration为对象添加了一些自定义验证.我通过visualforce页面插入该对象记录.我<apex:pageMessages/>
在visualforce页面上添加了.我还编写了代码块来捕获异常并显示错误消息ob VF页面.请在下面找到代码块:
catch(DMLException excp)
{
ApexPages.Message msg = new ApexPages.Message(Apexpages.Severity.ERROR, excp.getMessage() );
ApexPages.addMessage(msg);
return null;
}
Run Code Online (Sandbox Code Playgroud)
我仍然无法从自定义验证中获得错误消息.它显示我的错误如下:
插入失败.第0行的第一个例外; 第一个错误:FIELD_CUSTOM_VALIDATION_EXCEPTION, error_message_from_custom_validation_comes_here
这有什么解决方案吗?
我有一个具有void返回类型的顶点函数.我想在特定位置退出该功能.这是否可以在顶点而不改变返回类型的页面引用?
我试图在SalesForce中使用javascript和jquery创建一个小部件,我遇到了一个错误:未捕获的TypeError:无法调用未定义的方法'noConflict'
以下是我正在使用的代码
(function() {
// Localize jQuery variable
var $j;
/******** Load jQuery if not present *********/
if (window.jQuery === undefined || window.jQuery.fn.jquery !== '1.4.2') {
var script_tag = document.createElement('script');
script_tag.setAttribute("type","text/javascript");
script_tag.setAttribute("src",
"https://ap1.salesforce.com/resource/go/jquery.min.js");
if (script_tag.readyState) {
script_tag.onreadystatechange = function () { // For old versions of IE
if (this.readyState == 'complete' || this.readyState == 'loaded') {
scriptLoadHandler();
}
};
} else {
script_tag.onload = scriptLoadHandler;
}
// Try to find the head, otherwise default to the documentElement
(document.getElementsByTagName("head")[0] || …
Run Code Online (Sandbox Code Playgroud) 我在Force.com上使用Apex创建了一个RESTful服务,下面是我的代码.
@RestResource(urlMapping='/helloWorld/*')
global with sharing class RestWebservice {
@HttpGet
global static String helloWorld(){
return 'HelloWorld';
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用以下网址访问我的RESTful服务:https: //ap1.salesforce.com/services/apexrest/helloWorld/
作为回应我正在考虑:
HTTP/1.1 404 Not Found
Date:Thu, 18 Jul 2013 07:35:44 GMT
Content-Length:96
Content-Type:application/json;charset=UTF-8
[
{
"message": "Could not find a match for URL /helloWorld/",
"errorCode": "NOT_FOUND"
}
]
Run Code Online (Sandbox Code Playgroud)
下面是我的班级快照:
我该如何解决这个问题?任何帮助表示赞赏.
salesforce ×10
visualforce ×10
apex-code ×5
force.com ×3
csrf ×1
css ×1
extjs ×1
javascript ×1
jquery ×1