我有一个为删除设置了GridButtonColumn的Radgrid。我正在使用确认对话框,并使用资源文件根据用户的语言设置ConfirmText和ConfirmTitle属性。如何打开确认对话框中的Ok按钮、Cancel按钮和Close工具提示,以便根据用户的语言进行相应的设置?
发布于 2012-05-04 06:20:28
为此,您必须创建自己的确认模板。
首先,您必须在页面中添加一个用于存储您的文化信息的隐藏字段。(如果可能的话,那就把这段代码放在母版页上,这样它就可以在每一页上工作了)。
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
HtmlInputHidden hi = new HtmlInputHidden();
HtmlHead head = (HtmlHead)Page.Header;
hi.ID = "HtmlInputHiddenLang";
hi.Attributes.Add("class", "HtmlInputHiddenLang");
hi.Value = System.Threading.Thread.CurrentThread.CurrentUICulture.Name;
head.Controls.Add(hi);
}
然后为radwindowmanager创建你自己的主题或模板。
<telerik:RadWindowManager runat="server" SkinID="CustomSkin">
<ConfirmTemplate>
<div class="rwDialogPopup radconfirm">
<div class="rwDialogText">
{1}
</div>
<div class="rwDialogButton">
<a onfocus="RadWindowConfirm_DefaultFocus();" onclick="$find('{0}').close(true);"
class="MyrwPopupButton" href="javascript:void(0);">
<img id="Img2" runat="server" class="imgCurrentCulture" src="~/Images/CURRENT_CULTURE/Yes.png"
onmouseover="ImageButtonMouseOver(this);" onmouseout="ImageButtonMouseOut(this);" /></a>
<a id="hrefNo" name="hrefNo" onclick="$find('{0}').close(false);" class="MyrwPopupButton"
href="javascript:void(0);">
<img id="Img3" runat="server" class="imgCurrentCulture" src="~/Images/CURRENT_CULTURE/No.png"
onmouseover="ImageButtonMouseOver(this);" onmouseout="ImageButtonMouseOut(this);" /></a>
</div>
<script type="text/javascript">
$('img.imgCurrentCulture').each(function () {
var culture = $('.HtmlInputHiddenLang')[0].value;
this.src = this.src.replace('/CURRENT_CULTURE/', '/' + culture + '/');
});
function RadWindowConfirm_DefaultFocus() {
document.getElementById("hrefNo").focus();
}
</script>
</div>
</ConfirmTemplate>
</telerik:RadWindowManager>
根据上面的代码,默认url类似于"~/Images/CURRENT_CULTURE/Yes.png“。一旦您在隐藏字段中设置了您的文化名称,它将被CURRENT_CULTURE替换为En_us,因此您的最终图像url是"~/Images/en_us/Yes.png“。
注意:我在代码中使用了jquery,所以不要忘记在项目中添加jquery。
https://stackoverflow.com/questions/10400988
复制相似问题