我有一个read-only
文本框,应该动态初始化为一个值。此字段显示在页面上,该页面用于输入与上一页中创建的播放器相对应的详细信息的值(我为此目的使用RedirectToAction()
,但无法访问传递的" PlayerID
"来自当前页面控制器的值。因此决定使用TempData
。)。由于PlayerID
每次添加新玩家时都会更改,因此该字段应显示该值,同时仍保持只读状态。
此外,这是一个required
'字段,因此在设置值之前无法提交表单。
@Html.TextBoxFor(model => model.PlayerID, htmlAttributes: new { @readonly = "read-only", @class = "control-label col-md-2", value = @Html.Raw(TempData["PlayerID"]) })
如何设置此字段的值,因为它在TempData["PlayerID"]
?
答案 0 :(得分:0)
您可以拥有在页面加载上运行的JavaScript,例如:
@section Scripts
{
<script>
$(function(){
$("#PlayerID").val('@TempData["PlayerID"]');
});
</script>
}
或者,你可以为动作中的视图初始化Model,所以如果你的动作名称是'PlayerDetails',那么你应该有这样的东西:
public ActionResult PlayerDetails()
{
return View(new Player{PlayerID=TempData["PlayerID"]}
}
这样,当视图绑定到视图模型时,它将被初始化为传递的值。
答案 1 :(得分:0)
您可以尝试以下代码:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view=convertView;
final CategorisedApplicationsAdapter.ViewHolder viewHolder;
if(view==null){
view=layoutInflater.inflate(R.layout.categorised_apps_row,parent,false);
viewHolder= new CategorisedApplicationsAdapter.ViewHolder();
viewHolder.tvApplicationName= (TextView) view.findViewById(R.id.textView_Categorised_Apps_row);
viewHolder.imageAppIcon= (ImageView) view.findViewById(R.id.imageView_Categorised_Apps_row);
view.setTag(viewHolder);
}else {
viewHolder= (CategorisedApplicationsAdapter.ViewHolder) view.getTag();
}
String pName=packageNames.get(position);
viewHolder.tvApplicationName.setText(getApplicationName(packageManager,pName));
viewHolder.imageAppIcon.setImageDrawable( getApplicationIcon(packageManager,pName));
viewHolder.packageName=pName;
// view.setTag(categoryList.get(position).toString());
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ViewHolder viewholder=(ViewHolder)v.getTag();
Intent launchIntent = packageManager.getLaunchIntentForPackage(viewholder.packageName);
if (launchIntent != null) {
mContext.startActivity(launchIntent);//null pointer check in case package name was not found
}
}
});
return view;
}
或者在你的情况下:
@Html.TextBox("PlayerID", @TempData["PlayerID"] ,new { @readonly = "read-only", @class = "control-label col-md-2"})