У меня есть dojox.grid.DataGrid
. В этом случае отображается набор значений вместе с последними 2 столбцами, заполненными buttons
, которые создаются динамически в соответствии с данными, извлекаемыми из базы данных, с использованием свойства formatter
в gridStruture
. Теперь я получаю свою сетку в порядке. Кнопки также подходят отлично. Теперь мне нужно сделать следующее: когда я нажимаю на определенную кнопку на этом событии с щелчком мыши, я перенаправляю его на новый URL-адрес с определенным значением (A), которое передается в качестве параметра строки запроса в этом URL-адресе. И я не хочу, чтобы моя страница обновлялась. Например, когда нажата кнопка, она выполняет действие на другой странице JSP и отображает сообщение alert("Action is being performed")
.Выполнение действия - событие нажатия кнопки, кнопка расположена внутри dojox.grid.DataGrid.
Моего Java код сценарий, где я закодирован для моей сетки данных ::
<script type="text/javascript">
function getInfoFromServer(){
$.get("http://localhost:8080/2_8_2012/jsp/GetJson.jsp?random=" + new Date().getTime(), function (result) {
success:postToPage(result),
alert('Load was performed.');
},"json");
}
function postToPage(data){
alert(data);
var storedata = {
identifier:"ActID",
items: data
};
alert(storedata);
var store1 = new dojo.data.ItemFileWriteStore({data: storedata}) ;
var gridStructure =[[
{ field: "ActID",
name: "Activity ID",
classes:"firstName"
},
{
field: "Assigned To",
name: "Assigned To",
classes: "firstName"
},
{ field: "Activity Type",
name: "Activity Type",
classes:"firstName"
},
{
field: "Status",
name: "Status",
classes: "firstName"
},
{
field: "Assigned Date",
name: "Assigned Date",
classes: "firstName"
},
{
field: "Assigned Time",
name: "Assigned Time",
classes: "firstName"
},
{
field: "Email",
name: "Send Mail",
formatter: sendmail,
classes: "firstName"
},
{
field: "ActID",
name: "Delete",
formatter: deleteact,
classes: "firstName"
}
]
];
//var grid = dijit.byId("gridDiv");
//grid.setStore(store1);
var grid = new dojox.grid.DataGrid({
store: store1,
structure: gridStructure,
rowSelector: '30px',
selectionMode: "single",
autoHeight:true,
columnReordering:true
},'gridDiv');
grid.startup();
dojo.connect(grid, "onRowClick", grid, function(){
var items = grid.selection.getSelected();
dojo.forEach(items, function(item){
var v = grid.store.getValue(item, "ActID");
getdetailsfordialog(v);
function showDialog() {
dojo.require('dijit.Tooltip');
dijit.byId("terms").show();
}
showDialog();
}, grid);
});
}
function sendmail(item) {
alert(item);
return "<button onclick=http://localhost:8080/2_8_2012/jsp/SendMailReminder.jsp?Send Mail="+item+"'\">Send Mail</button>";
}
function deleteact(item) {
alert(item);
return "<button onclick=http://localhost:8080/2_8_2012/jsp/DeleteActivity.jsp?Activity ID="+item+"'\">Delete</button>";
}
</script>
Я получаю данные сетки с помощью $.get
вызова. В приведенном выше поле кода Email
и ActID
фактически созданы кнопки, когда каждая функция sendmail
и deleteact
вызывается в formatter
. Отображается сетка. Также значение alert(item)
в обеих функциях подходит правильно, что соответствует соответствующим значениям. Как и для alert(item)
в Delete
я получаю ActID
и alert(item)
в sendmail
получать "[email protected]"
Теперь я хочу, чтобы на определенном button click
(кнопка в Sendmail
колонке) моя страница
http://localhost:8080/2_8_2012/jsp/SendMailReminder.jsp?Send Mail="+item+"'
и button click
в Delete
колонке этой страницы
http://localhost:8080/2_8_2012/jsp/DeleteActivity.jsp?Activity ID="+item+"'\"
открывается со значением элементов, извлекаемых из базы данных. Я также применил событие rowClick
, которое также вызывает проблемы, когда я нажимаю кнопку u на мой Rowclick
события, а не событие нажатия кнопки. Как это сделать. Я думал о применении события click для каждой кнопки в сетке. Но там ID я не знаю. Пожалуйста, помогите мне в этом. Спасибо ..
Что вы имеете в виду' выполняет действие на другой странице JSP '? Вы хотите открыть этот другой JSP в всплывающем окне или отправить запрос ajax для выполнения какого-либо действия на стороне сервера или что-то еще? – ivalkeen
На этом JSP SendMailReminder.jsp. У меня есть объект класса Отправить почту.Этот объект вызывает определенную функцию класса, которая отправляет почту на значение, полученное из элемента строки запроса. Поэтому в основном мне нужно передать это значение элемента в качестве параметра вызываемой функции в моем SendMailReminder.jsp. Или что я могу сделать, это вызвать этот метод на этой же странице, не перенаправляя его на SendMailReminder.jsp. Если возможно второе, пожалуйста, предложите мне способ сделать это? Спасибо –
И сэр я продолжаю получать ошибку «Пробовал зарегистрировать id =« что-то », но этот идентификатор уже зарегистрирован». Я знаю, что это довольно распространенная ошибка, и что-то делать с удалением идентификатора из домена dojo или чего-то еще. Но я не понимаю, что это такое. И как преодолеть это. Спасибо .. И я не получаю эту ошибку на моей текущей странице (Ques спрашивается). Но продолжает получать его на некоторых других страницах. –